我有一些问题连接到我用docker-compose启动的mysql docker容器.这是一篇很长的帖子(对不起!).
这是我的docker-compose.yml文件:
db:
image: mysql:5.7
ports:
- "3306:3306" # I have tried both ports and expose "3306". Still doesn't work
environment:
- MYSQL_ROOT_PASSWORD="secret"
- MYSQL_USER="django"
- MYSQL_PASSWORD="secret"
- MYSQL_DATABASE="myAppDB"
Run Code Online (Sandbox Code Playgroud)
然后:
$> docker-compose build
db uses an image, skipping #expected!
$> docker-compose up
<<LOTS OF OUTPUT>>
Run Code Online (Sandbox Code Playgroud)
好的,现在我有一个正在运行的docker容器运行器mysql:5.7.大!或者是吗?在我的django应用程序中进行测试时,我收到操作错误,表示不允许用户连接数据库.好的,那也许是我的django呢?
$> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7216f99ca0f mysql:5.7 "docker-entrypoint.sh" 3 minutes ago Up 3 minutes 0.0.0.0:3306->3306/tcp sharpfin_db_1
$> docker-machine ip dev
192.168.99.100
$> mysql -h 192.168.99.100 -P 3306 …Run Code Online (Sandbox Code Playgroud) 我创建了一个小的docker-compose.yml,曾经像魅力一样工作,以部署小型WordPress实例.它看起来像这样:
wordpress:
image: wordpress:latest
links:
- mysql
ports:
- "1234:80"
environment:
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_PASSWORD: "password"
WORDPRESS_DB_HOST: mariadb
MYSQL_PORT_3306_TCP: 3306
volumes:
- /srv/wordpress/:/var/www/html/
mysql:
image: mariadb:latest
mem_limit: 256m
container_name: mariadb
environment:
MYSQL_ROOT_PASSWORD: "password"
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: "password"
volumes:
- /srv/mariadb:/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
但是当我现在开始它时(可能是因为Docker更新到Docker版本1.9.1,构建a34a1d5),它失败了
wordpress_1 | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 10
wordpress_1 |
wordpress_1 | MySQL Connection Error: (2002) Connection refused
Run Code Online (Sandbox Code Playgroud)
当我有猫/etc/hosts的wordpress_1条目有MySQL:
172.17.0.10 mysql 12a564fdbc56 mariadb
Run Code Online (Sandbox Code Playgroud)
我能够ping …