docker 的container模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 的container模式相关的知识,希望对你有一定的参考价值。

参考技术A Docker网络container模式是指,创建新容器的时候,通过 --net container 参数,指定其和已经存在的某个容器共享一个 Network Namespace。如下图所示,右方黄色新创建的container,其网卡共享左边容器。因此就不会拥有自己独立的 IP,而是共享左边容器的 IP 172.17.0.2,端口范围等网络资源,两个容器的进程通过 lo 网卡设备通信。

但这两个容器在其他的资源上,如文件系统、进程列表等还是隔离的。

使用busybox镜像新建bb容器,bb容器网络模型默认采用的bridge模式

使用nginx镜像新建nginx容器,并用 --net container:bb 参数,指定该容器的网络模型为container模式,和bb容器共用相同的网络命名空间。

进入bb容器

使用命令查看网络端口情况

可以看到,nginx容器的80端口已经映射到了bb容器的80端口

在bb容器内部访问bb容器本机的80商品,我们可以看到实际上可以访问到nginx容器的

查看bb容器的ip地址,并退出bb容器

使用上面得到IP地址,从云环境主机的环境,去访问

也会得到

总结

Docker container网络模式,这种模式可以节约一定的网络资源,并能降低容器间的通信的难度。container网络模式使多个容器共享网络环境,在这种模式下容器可以通过访问localhost来访问 namespace下的其他容器,网络性能高

docker---桥接和container模式

桥接模式(分配独立ip)

第一步:

修改网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0.bak
cp ifcfg-eth0 ifcfg-br0

vim ifcfg-eth0

DEVICE=eth0
HWADDR=00:0C:29:DB:B2:28
TYPE=Ethernet
UUID=b2268aab-fa2e-49e9-bd67-2572f29e5790
ONBOOT=yes
BRIDGE=br0
BOOTPROTO=none
#IPADDR=192.168.1.179
#NETMASK=255.255.255.0
#GATEWAY=192.168.1.1


vim ifcfg-br0

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.179
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

第二步:

docker配置
pipework是一个Docker网络配置工具
git clone https://github.com/jpetazzo/pipework
cp pipework/pipework /usr/local/bin/
运行docker
docker run -it --net=none --name test  centos:6 /bin/bash

在宿主机上
rpm -Uvh https://repos.fedorapeople.org/openstack/EOL/openstack-grizzly/epel-6/iproute-2.6.32-130.el6ost.netns.2.x86_64.rpm
#给容器添加ip
pipework br0 docker_name 192.168.1.187/24

 

container模式(容器共享一个ip)

docker run -i -t --net="container:02aac28b9234"  mysql:latest /bin/bash

  

  

以上是关于docker 的container模式的主要内容,如果未能解决你的问题,请参考以下文章

docker swarm网络模式

docker 的container模式

docker的四种网络模式

Docker 网络管理

Docker 网络模式

Docker网络模式