首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头集装箱从不同的子网开始

码头集装箱从不同的子网开始
EN

Stack Overflow用户
提问于 2016-10-22 09:33:39
回答 1查看 51关注 0票数 0

我必须启动3个容器,nginx,wordpress和wordpress2。问题是nginx容器从172.17.0.2开始,wordpress在172.18.0.3开始,wordpress2在172.19.0.4开始。如我所示,wordpress容器从它们的docker-compose.yml开始配置:

关于wordpress:

代码语言:javascript
复制
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"
     networks:
       - ipv4_address: 172.17.0.5
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_PASSWORD: wordpress

对于wordpress2:

代码语言:javascript
复制
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:
       - "8001:80"
     networks:
       - ipv4_address: 172.17.0.6
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_PASSWORD: wordpress

如您所见,我在networks中放置了ipv4_address,但是当我启动docker-come.yml时,它在这一行显示了错误。我认为默认情况下,所有容器通常都位于同一个网络上,但在这种情况下不是这样。你能帮我把所有的集装箱放在同一个子网里吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-22 16:22:23

每个docker-compose.yml将创建自己的子网。这样你的三个容器就看不见了。由其他对接者-撰写创建的网络据说是外部的,所以你必须将它们声明为外部。您可以使用docker network ls看到这些网络。

在您的docker-compose.yml文件中声明外部网络中的外部网络之后,您必须定义nginx服务应该使用的网络。你应该保持default网络。

通常,您的停靠-撰写网络的默认名称是<current_dir>_default。因此,假设当前目录名为yourproject1,则网络名将为yourproject1_default

然后,您将能够使用external_links (比ip地址更好)访问wordpress容器。

在这里,我将为nginx的docker-come.yml文件所做的工作,使他能够看到wordpress容器:

代码语言:javascript
复制
version: '2'

services:
  nginx:
    ...
    external_links:
      - your_project1_wordpress1_1:wordpress1
      - your_other_project2_wordpress2_1:wordpress2
    networks:
      - default
      - your_project1_default
      - your_other_project2_defaul



networks:
  your_project1_default:
    external: true
  your_other_project2_default:
    external: true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40190530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档