繁体   English   中英

如何使用docker-compose设置可访问的特定IP地址

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM