文档章节

Docker容器网络设置

戴的天
 戴的天
发布于 2017/03/16 15:36
字数 628
阅读 15
收藏 0

1. 默认网络

当你安装好Docker时,会自动生成3种网络模式。

$ docker network ls

NETWORK ID          NAME                DRIVER
7fca4eb8c647        bridge              bridge
9f904ee27bf5        none                null
cf03ee007fb4        host                host

当然,docker不知提供了这种网络模式。你也可以用--network来指定你需要的网络模式。 在启动docker时,使用docker run --network=<NETWORK>选项来选择容器的网络模式,其中bridge模式时默认模式。 其中none模式就是一个只有127.0.0.1地址的容器,进入容器就可以看到

$ docker attach nonenetcontainer

root@0cb243cd1293:/# cat /etc/hosts
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
root@0cb243cd1293:/# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@0cb243cd1293:/#

host模式则是一个与宿主机配置相同的容器。 即与宿主机同IP,并会占用宿主机的端口。

2 bridge模式

桥接模式,也就是以宿主机为网关建立一个虚拟局域网。和以前的docker0非常类似,但是增加了一些新特性。

$ docker network create --driver bridge isolated_nw
1196a4c5af43a21ae38ef34515b6af19236a3fc48122cf585e3f3054d509679b

$ docker network inspect isolated_nw

[
    {
        "Name": "isolated_nw",
        "Id": "1196a4c5af43a21ae38ef34515b6af19236a3fc48122cf585e3f3054d509679b",
        "Scope": "local",
        "Driver": "bridge",
        "IPAM": {
            "Driver": "default",
            "Config": [
                {
                    "Subnet": "172.21.0.0/16",
                    "Gateway": "172.21.0.1/16"
                }
            ]
        },
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

$ docker network ls

NETWORK ID          NAME                DRIVER
9f904ee27bf5        none                null
cf03ee007fb4        host                host
7fca4eb8c647        bridge              bridge
c5ee82f76de3        isolated_nw         bridge

当你创建了network后,可以用docker run --network=<NETWORK>来启动容器。

$ docker run --network=isolated_nw -itd --name=container3 busybox

8c1a0a5be480921d669a073393ade66a3fc49933f08bcc5515b37b8144f6d47c

$ docker network inspect isolated_nw
[
    {
        "Name": "isolated_nw",
        "Id": "1196a4c5af43a21ae38ef34515b6af19236a3fc48122cf585e3f3054d509679b",
        "Scope": "local",
        "Driver": "bridge",
        "IPAM": {
            "Driver": "default",
            "Config": [
                {}
            ]
        },
        "Containers": {
            "8c1a0a5be480921d669a073393ade66a3fc49933f08bcc5515b37b8144f6d47c": {
                "EndpointID": "93b2db4a9b9a997beb912d28bcfc117f7b0eb924ff91d48cfa251d473e6a9b08",
                "MacAddress": "02:42:ac:15:00:02",
                "IPv4Address": "172.21.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

3.docker_gwbridge模式

docker_gwbridge模式是docker在两种不同环境下自动创建的模式。

  • 当你创建或加入一个swarm集群时,docker会用docker_gwbridge与其他swarm节点通信。
  • 当没有容器网络可以提供外部连接时,Docker使用docker_gwbridge模式与其他网段的容器通信,所以容器可以连接其他网段的容器或swarm节点。 因为目前不用该模式,不深入了解。

4.指定网络

创建一个名为selfnet的网桥,并指定网段172.18.0.0

docker network create --subnet=172.18.0.0/16 selfnet

在selfnet网段内选一个IP进行指定

docker run -d -p 2001:2001 --net selfnet --ip 172.18.0.10 group/image-name -s 0.0.0.0 -k 123456 -m aes-256-cfb

其中,--net selfnet为我们之前创建的网桥,172.18.0.10为指定的IP,group/image-name 为docker影像名。

© 著作权归作者所有

戴的天
粉丝 16
博文 63
码字总数 83564
作品 0
杭州
技术主管
私信 提问
Docker 网络配置

摘要 当docker启动时,它会在宿主机器上创建一个名为docker0的虚拟网络接口。它会从RFC 1918定义的私有地址中随机选择一个主机不用的地址和子网掩码,并将它分配给docker0。例如当我启动doc...

Yashin
2014/07/01
77.5K
19
Docker如何固定IP设置的方法

由于工作需要,需要给Docker设置固定IP,在网上的查找了一些资料,自己试着实践一下,留个笔记。 经常用Docker模拟项目在生产环境中的部署,往往需要同时开好几台Docker容器,而且有时安装的...

xiaoxin
2018/10/30
515
0
Docker入门与实战系列:网络

Docker入门与实战——《Docker ABC》电子书 https://github.com/gudaoxuri/DockerABC 9. 网络 Docker的很多问题都是网络设置引发的,所以这里有必要介绍一下Docker的网络处理。 在容器运行时...

孤岛旭日
2015/11/07
72
0
“深入浅出”来解读Docker网络核心原理

前言  之前笔者写了有些关于dokcer的各种相关技术的文章,唯独Docker网络这一块没有具体的来分享。后期笔者会陆续更新Docker集群以及Docker高级实践的文章,所以在此之前必须要和大家一起来...

甘兵
2018/10/29
0
0
读书笔记 -- Docker网络管理基础

Docker网络管理 虚拟化技术是云计算的主要推动技术,Docker作为云计算领域的一颗新星,彻底释放了轻量化虚拟化的威力,使得计算资源的利用率提升到新的层次,Docker也因此成为云计算发展趋势。...

yeit
2015/11/18
3
0

没有更多内容

加载失败,请刷新页面

加载更多

从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
5
0
程序性能checklist

程序性能checklist

Moks角木
昨天
7
0
VUE 计算属性

本文转载于:专业的前端网站▶VUE 计算属性 1、示例代码 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <title>vue示例</title> </hea......

前端老手
昨天
6
0
快速搭建LNMT平台和环境部署 Tomcat详解

Tomcat部署的基本概念 1. CATALINA_HOME与CATALINA_BASE分别指什么?     CATALINA_HOME指的是Tomcat的安装目录     bin:\\Tomcat一些脚本存放目录,比如启动脚本startup.bat/start...

网络小虾米
昨天
7
0
float浮动

float浮动 float浮动概念及原理: 文档流:文档流是文档中可显示对象在排列时所占用的位置。 加浮动的元素,会脱离文档流,会沿父容器靠左或靠右排列,如果之前已经有浮动的元素,会挨着浮动...

studywin
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部