docker 网络入门

网络隔离与互通

使用 docker network ls 查看当前网络

$ docker network ls

NETWORK ID          NAME                DRIVER
18a2866682b8        none                null
c288470c46f6        host                host
7b369448dccb        bridge              bridge

docker 网络入门

使用命令 docker network inspect <network_name> 查看网络信息

docker network inspect bridge

创建一个 bridge 网络

# 创建一个网络
$ docker network create -d bridge my_bridge
# The -d flag tells Docker to use the bridge driver for the new network. You could have left this flag off as bridge is the default value for this flag.

容器的网络隔离

创建两个容器

  • 容器 db 使用 my_bridge 网络
  • 容器 web 使用默认的 bridge 网络
#创建容器
$ docker run -d --net=my_bridge --name db training/postgres
53365bd018e5525703ac8230717c1e5df6fa020f72e4f90b45f9d87dc6e7d725
$ docker run -itd --name web ubuntu
774887a1a4d4cd5b254f6797dadebd0388b6707f1f051435ec881251bf273320

docker 网络入门
查看IP地址

$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' db
172.20.0.2
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web
172.17.0.2

将容器加入网络

使用命令 docker network connect <network_name> <container_name>

# 创建容器
$ docker run -d --net=my_bridge --name db training/postgres
53365bd018e5525703ac8230717c1e5df6fa020f72e4f90b45f9d87dc6e7d725
$ docker run -itd --name web ubuntu
774887a1a4d4cd5b254f6797dadebd0388b6707f1f051435ec881251bf273320

docker 网络入门