文章目录
一、Docker网络
1、原理
docker 使用linux 桥接,在宿主机虚拟一个docker 容器网桥(docker0) ,docker 启动一个容器时会根据docker 网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker 网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP 直接通信。
docker 网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过Container-IP 访问到容器。如果容器希望外部访问能够访问到,可以通过映射容器端口到宿主机(端口映射),即 docker run 创建容器时候,通过 -p 或者 -P 参数来启用。访问容器的时候,就通过 [宿主机IP]:[映射端口] 访问容器。
2、为容器创建端口映射
方法一、随机映射端口
##docker run -d --name 为容器指定名称 -P 镜像
docker run -itd --name web1 -P nginx
docker ps -a
curl http://20.0.0.12:49153
方法二、指定映射端口
##docker run -d --name 为容器指定名称 -p 宿主机端口:容器内端口 镜像
docker run -itd --name web2 -p 42399:80 nginx
docker ps -a
curl http://20.0.0.12:42399
iptables