Docker-网络管理
本文以 docker/getting-started:latest 镜像为例说明;
1.Docker网络类型
Docker提供了4种网络类型,其中常见的两种:bridge及host;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
# 运行示例
docker run -d --name changan --net="bridge" docker/getting-started:latest
1.Bridge
Bridge(网桥)是Docker默认使用的网络类型,用于同一主机上的docker容器相互通信,网络中的所有容器可以通过IP互相访问,连接到同一个网桥的docker容器可以相互通信。
Bridge网络通过网络接口docker0 与主机桥接,启动docke时就会自动创建,新创建的容器默认都会自动连接到这个网络,可以在主机上通过ifconfig docker0 查看到该网络接口的信息;
ifconfig docker0
2.Host
Host模式下,容器的网络接口不与宿主机网络隔离。在容器中监听相应端口的应用能够直接被从宿主机访问,即不需要做端口映射,但可能引发安全隐患或端口冲突。
2.容器之间的通信
1.容器之间添加链接
# 首先创建容器名-changan的容器
sudo docker run -d --name chengdu --link changan docker/getting-started:latest
# 验证
sudo docker exec -it chengdu ping changan
2.创建一个网络
# 创建一个名为-net的网络
sudo docker network create -d bridge net
# 查看
sudo docker network ls
# 使用 --network net
sudo docker run -d --name changan --network net docker/getting-started:latest
# 通过以下任一命令查看IP信息
sudo docker inspect changan
sudo docker exec -it changan ip a
# 通过命令连接
sudo docker run -d --name luoyang docker/getting-started:latest
sudo docker network connect net luoyang
# 访问,通过容器名访问需处在同一个网络下,否则只能通过IP访问
sudo docker exec -it changan ping luoyang
# 等价于
sudo docker exec -it changan /bin/sh
ping luoyang
# 查看net网络详细信息
sudo docker network inspect net
|