sba*_*row 6 docker docker-compose
我使用以下命令启动了一个docker容器
docker run --name mysql --restart always -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7.14
Run Code Online (Sandbox Code Playgroud)
然后想将wordpress网站与以下docker-compose.yml文件连接起来
version: '2'
services:
wordpress:
image: wordpress
external_links:
- mysql:mysql
ports:
- 80:80
environment:
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
volumes:
- /var/www/somesite.com:/var/www/html
Run Code Online (Sandbox Code Playgroud)
但我不断收到以下错误
Starting somesitecom_wordpress_1
Attaching to somesitecom_wordpress_1
wordpress_1 |
wordpress_1 | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 19
wordpress_1 |
wordpress_1 | MySQL Connection Error: (2002) Connection refused
Run Code Online (Sandbox Code Playgroud)
好像external_links不行.
知道我做错了什么吗?
BMi*_*tch 19
您的链接正常,但您在Docker内的不同网络上.来自docker-compose.yml文档:
注意:如果您使用的是版本2文件格式,则外部创建的容器必须至少连接到与链接到它们的服务相同的网络之一.
要解决此问题,您可以创建自己的网络:
docker network create dbnet
docker network connect dbnet mysql
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令配置docker-compose.yml:
version: '2'
networks:
dbnet:
external:
name: dbnet
services:
wordpress:
image: wordpress
ports:
- 80:80
environment:
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
volumes:
- /var/www/somesite.com:/var/www/html
networks:
- dbnet
Run Code Online (Sandbox Code Playgroud)
请注意,对于最新版本的Docker,您不需要链接容器,DNS服务应该为您执行名称解析.
| 归档时间: |
|
| 查看次数: |
7510 次 |
| 最近记录: |