docker 网络

容器要想访问外部网络,需要本地系统的转发支持。

在Linux 系统中,检查转发是否打开。

 sysctl net.ipv4.ip_forward
 net.ipv4.ip_forward = 1

如果为 0,说明没有开启转发,则需要手动打开。

sysctl -w net.ipv4.ip_forward=1

如果在启动 Docker 服务的时候设定 --ip-forward=true, Docker 就会自动设定系统的 ip_forward 参数 为 1。


--link 同一个宿主机的容器间的通信

测试 先建立一个容器

docker run -itd  --name my  -p 8081:80  test

然后再建立一个容器 需要 与 my容器通信

docker run -itd  --name my1  -p 8082:80 --link my  test

--link my 就行 很简单

上面 这个没法测试 ping 下面来一个能测试 的

busybox 阉割版的liunx

docker pull busybox

建立连接

docker run -itd --name busybox1 busybox

docker run -itd  --name busybox2 --link busybox1   busybox

现在是 busybox2  与 busybox1 建立连接

docker inspect busybox1

查看 busybox1 ip 

 进入 busybox2  ping busybox1 的 ip

docker exec -it busybox2 ping 172.17.0.2

ping 成功

 

 

默认docker 是有网络的 查看网络

docker network ls

 

bridge:桥接模式(默认)

none:不配置网络

host:和宿主机共享网络

container:容器网络连通(用得少,局限大)

如果 多个容器通信 那么 加到同一个网络中去就行了

docker run -itd --name b1 --net bridge busybox

docker run -itd --name b2 --net bridge busybox

docker run -itd --name b3 --net bridge busybox

用同样的方法

docker inspect b3 

查看 b3的 ip 

dokcer exec -it b2 ping 172.17.0.6

结果也是ping 通的

自建 网络

docker network create -d bridge mynet1

查看网络

docker network ls

docker run -itd --network mynet1 --name b1net busybox

查看网络是否添加成功了

docker inspect  b1net 

 

posted on 2023-08-02 12:11  是水饺不是水饺  阅读(11)  评论(0编辑  收藏  举报

导航