![](/img/trans.png)
[英]Docker Compose Set Linux Docker Host IP Address in Container's /etc/hosts
[英]How to set a specfic ip address with docker-compose who's accessible
目前,我在Docker上玩耍,我很喜欢它,但是如何使用docker-compose设置IP地址呢?
这是我的问题,在docker-compose网站上是Wordpress的快速入门示例。
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
现在,我希望Wordress-Site在IP地址10.10.10.25下可用,我该怎么办?
Docker-compose可能吗?
编辑
因此,我尝试建立我的网络,但是它不起作用。
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
networks:
mynet:
ipv4_address: 172.25.0.102
wordpress:
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
networks:
mynet:
ipv4_address: 172.25.0.101
networks:
mynet:
driver: bridge
ipam:
config:
subnet: 172.25.0.0/24
它仅收到以下错误消息。
wordpress_1 | 警告:mysqli :: mysqli():(HY000 / 2002):连接被拒绝-在第19行wordpress_1 | wordpress_1 | MySQL连接错误:(2002)连接被拒绝wordpress_1 | AH00558:apache2:无法使用172.25.0.101可靠地确定服务器的标准域名。 全局设置“ ServerName”指令以禁止显示此消息wordpress_1 | AH00558:apache2:无法使用172.25.0.101可靠地确定服务器的标准域名。 全局设置“ ServerName”指令以禁止显示
docker模型不是使用特定IP创建容器,而是仅公开和发布您需要从外部访问的容器中的端口。 因此,您需要在docker-compose.yml中为服务添加以下内容:
ports:
- 8080:80
这样会将所有在8080上到达主机的流量定向到容器的端口80。您可以根据需要调整这些端口,甚至可以使它们相同。 然后,所有试图到达您的wordpress服务器的外部流量都将转到http://your.docker.host:8080
(对于本地测试,这将是http:// localhost:8080 )。
如果确实需要指定容器的IP地址,可以完成此操作,但是您需要先定义自己的网络,然后在该网络上运行容器(为它提供IP),然后需要更新路由您的路由器或网络上的其他主机将流量发送到该IP的docker主机,您可能会发现默认iptables规则将不允许流量流入该容器。 因此,我不建议您沿着那条路走。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.