docker网络的使用

网络

docker的网络和iptables是结合在一起的。你在使用到docker网络的时候就会间接性的使用到iptables,如果要是有问题,那么优先从这里排查问题。
文档

创建一个网络

docker create network

查看docker的所有网络

docker network ls

docker的网络已经帮你映射好了网卡关系,你可以直接使用ping命令去访问对应的接口网络

➜  ~ ip a |grep ed3
8: br-ed35b450902b: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    inet 172.20.0.1/16 brd 172.20.255.255 scope global br-ed35b450902b

对于上面的网卡,你可以直接输入命令ping 172.20.0.1这样直接访问对应的子网。
也可以在运行的时候修改对应的容器的docker的网络使用docker network

问题

  1. 如何创建和删除网络
    docker network create -d bridge bb_net
    docker network remove bb_net
  2. 如何如何指定容器的网络
    使用 --net <网络接口名称>
    docker run --rm --name arch_test --net aa_net -itd archlinux/archlinux:latest bash
  3. 在容器运行的时候可以指定网络吗?
    通过命令docker network connect <容器名称> <网络接口>来指定容器运行的网络

对于上面的问题

将某个容器附加到指定的网络之中

# docker network connect <网络> <容器名称>
docker network connect 61b471aaabb9 my_1

创建一个网络

# 下面的这个-d是指代 driver 也就是网络模式,分别有两种 bridge、overlay
docker network create -d bridge my-bridge-network

通常使用的是bridge 如果是overlay则需要开启集群(实际上-d参数默认就是bridge)
属于在同一个网络之中的容器可以互相ping通。更详细的文档看这个

创建容器的时候指定网络

docker run -itd --network=<网络名称> archlinux/archlinux:latest bash
posted @ 2023-12-13 20:13  index72  阅读(33)  评论(0)    收藏  举报