docker容器网络配置及源更新
2022-12-30 15:53:23 Author: 安全info(查看原文) 阅读量:3 收藏

Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理。然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分。因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求。本文首先介绍了Docker自身的4种网络工作方式,然后介绍一些自定义网络模式。

Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,成为Container-IP,同时Docker’网桥是 每个容器的默认网关。因为同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。

Docker网桥是宿主机虚拟出来的,并不是真实存在网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过Container-IP访问到容器。

如果容器希望外部访问能访问到,可以通过映射容器端口到宿主主机(端口映射),即 docker run创建容器时通过-p或-P参数来启用,访问容器的时候就通过[宿主机IP]:[容器端口]访问容器 。
docker四种网络模式如下:
    Bridge contauner ——桥接式网络模式
    Host(open) container ——开放式网络模式
    Container(join) container ——联合挂载式网络模式,是host网络模式的延伸
    None(Close) container ——封闭式网络模式
这里的案例是pull一个ubuntu镜像,启动多个ubuntu容器,实现容器间的通信
一、前提是已经安装好了docker和docker-compose,具体可见链接

二、拉取镜像
docker pull ubuntu# 可以先查看有哪些镜像docker search ubuntu
三、启动容器,这里启动容器一般没有网络,或者容器内的源不能使用,具体看代码块里面的内容;
# 首先查看、创建一个网络 test-networkdocker network lsdocker network create test-network#将容器加入网络当中 方法一:docker network connect test-netwrk ubuntu1 方法二:启动容器的时候加入:docker run -itd --network test-network ubuntu# 在外面查看各个容器的IP地址docker netwrk inspect test-network
# 关于容器内源不能使用 方法一:启动容器时映射进去;本地新建一个文件夹,s.list,把对应容器版本的源放进去,-v参数后面是将本地s.list文件映射到容器的sources.list docker run -itd -v $PWD/s.list:/etc/apt/sources.list ubuntu bash 方法二:找到源,进入容器echo进他的sources.list文件,覆盖掉。
四 、这个时候,在容器里面apt update就可以正常执行了,也可以下载其他软件;
五、需要注意的是,加入网络之后可能网络还是不通,这个时候重启一下docker就行;
systemctl restart docker

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2MTc0NTYyNg==&mid=2247484358&idx=1&sn=2c51cbd81d76961dd606a9d4a342f82e&chksm=ce133b73f964b265b55d41d5ecb1981cb73c5ee46e4ed11832bdf2069f49c136aff247ed4541#rd
如有侵权请联系:admin#unsafe.sh