您现在的位置是:首页 >技术教程 >docker 网络网站首页技术教程
docker 网络
docker 的数据管理
1.数据卷 挂载
docker run -itd --name c3 -v /var/www:/data nginx:1.15
-v /var/www 是宿主机的目录
:/data 是容器的挂载点
在宿主机 www 底下写文件,容器data下面实时收到文件 ,互相都可以实时写数据,收到对方的信息
用-v 挂载一个目录,指定容器和宿主机怪哉到同一个目录当中,就可以实现文件同时性
文件也可以挂载 docker run -itd --name c3 -v /var/www/lcy.txt:/lcy nginx:1.13
2. 数据卷容器
经过宿主机,容器和容器之间共享数据
docker run -itd --name c1 -v /data1 -v /data2 nginx:latest
-v /data1 -v /data2 是在c1容器上创建data1 和data2 目录
docker run -itd --volumes-from c1 --name c2 nginx:latest
--volumes-from c1 是指定c1的目录挂载到 c2 上
容器映射
需要在这里写一个转发的ipv4
vim /etc/sysctl.conf
net.ipv4.ip_forward =1
docker run -itd --name test3 -p 1300:80 soscscs/myapp:v1
-p #指定映射端口
-P #随机映射端口(从32768开始
iptables -nL -t net 查看映射端口
curl http://192.168.86.40:1300 ping的命令
#Docker 网络实现原理
Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP 直接通信。
Docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过 Container-IP 访问到容器。如果容器希望外部访问能够访问到,可以通过映射容器端口到宿主主机(端口映射),即 docker run 创建容器时候通过 -p 或 -P 参数来启用,访问容器的时候就通过[宿主机IP]:[容器端口]访问容器。
docker run -d --name test1 -P nginx #随机映射端口(从32768开始)
docker run -d --name test2 -p 43000:80 nginx #指定映射端口
容器互联
docker run -itd --name b2 --link b1:lcy soscscs/myapp:v1
--link 代表着新建的容器和指定的容器建立互联