分类
bridge 网络
创建容器的时候,如果不指定 --net
参数,则默认使用 bridge
网络,在 bridge
网络下的容器可以直接通信
none 网络
和外界完全隔离的网络环境
docker run -d --name test_none --net none nginx
host 网络
使用主机网络,即和主机 ip
一样
命令
查看 docker 网络
docker network ls
具体查看某个网络
docker network inspect bridge
查看 docker 镜像使用端口
查找 ExposedPorts 字段:
docker inspect jenkins
查看 docker 容器所使用的端口
docker port `容器id/容器名`
端口绑定
将容器的 80 端口 绑定到本机任意端口:
docker run -d --name nginx --publish 80 nginx
将容器所需要绑定的端口绑定到本机的任意端口:
docker run -d --name nginx --publish-all nginx
或者简写:
docker run -d --name nginx -P nginx
自定义网络
我们可以基于某个网络创建自定义网络,属于这个网络的容器会被单独隔离出来,这些容器可以直接通信,但是不在这个自定义网络的容器不能够直接访问他们,一个容器可以使用多个网络。在自定义网络中的容器可以通过 docker 内嵌的dns 功能使用各自的名字来访问对方。
创建一个新的网络
docker network create --driver bridge nginx
把容器放入指定的网络
docker network connect `连接到的网络名` `要放到网络中的容器名`
将容器从指定网络中移除
docker network disconnect `要去掉的网络名` `要从网络中拿掉的容器名`