使用Docker

时间:2017-08-23 10:07:32

标签: docker ubuntu-14.04 docker-compose dockerfile

要求:

基于Ubuntu 14.04设置docker实例,其中1个实例起作用 就像网络流量通往所有其他人的网关......

为这样的设置创建一个docker compose文件......

所有这些实例都需要在他们自己的专用docker网络和默认的docker bridge ...

创建了一个Dockerfile

FROM ubuntu:14.04

# Set environment variables.
ENV HOME /root

# Define working directory.
WORKDIR /root

# Define default command.
CMD ["/bin/bash"]

docker-compose.yml

version: '3'
services:
  main:
    image: testenginer_main
    tty: true

  first:
    image: testenginer_main
    tty: true

其中testenginer_main是我使用Dockerfile设置生成的图像文件
我检查了实例已启动并正在运行

问题是我希望有2个网络1连接到docker的默认网桥,第2个连接到其他容器,因此其他容器可以通过网络1访问主网络

1 个答案:

答案 0 :(得分:1)

修改-1

如果您需要在主网络上访问互联网,那么您需要前两个网络

docker network create --subnet=172.19.0.0/16 internet
docker network create --internal --subnet 10.1.1.0/24 no-internet

上面你可以看一下

的更多细节

Restrict Internet Access - Docker Container

现在您可以按照以下更新撰写

version: '3'
services:
  main:
    image: testenginer_main
    tty: true
    networks:
      - internet
      - no-internet
  first:
    image: testenginer_main
    tty: true
    networks: 
      - no-internet
networks:
  no-internet:
    external: true
  internet:
    external: true

现在,如果您运行容器,您会看到main无法访问互联网,而first则无法访问

$ docker-compose ps
   Name       Command    State   Ports
--------------------------------------
ub_first_1   /bin/bash   Up
ub_main_1    /bin/bash   Up

$ docker-compose exec main apt update
Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
^C
$ docker-compose exec first apt update
Err:1 http://archive.ubuntu.com/ubuntu xenial InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:2 http://security.ubuntu.com/ubuntu xenial-security InRelease
  Temporary failure resolving 'security.ubuntu.com'
....
W: Some index files failed to download. They have been ignored, or old ones used instead.

您甚至可以使每个作品使用选项

创建自己的网络