docker 网络
查看容器端口映射
docker port 容器名|id
端口映射
docker run -P 镜像
docker run -p 主机port:容器port 镜像
-P参数会随机映射主机49000-49900端口和容器内部开放端口
-p参数支持:
hostIp:port:containerPort,主机ip:port映射容器containerPort
hostIp::containerPort ,主机IP任意端口映射containerPort
hostPort:containerPort, 主机任意IP的端口映射containerPort
例如
MacBook-Pro:~$ docker run -d -p 127.0.0.1::80 nginx
0a9de399eaf34e1a1ad7f6f42d146cedd941faf5855ae2dd7b6c3af39c4f2ffb
MacBook-Pro:~$ docker port 0a
80/tcp -> 127.0.0.1:32768
上述例子可以看出容器80端口随机映射到127.0.0.1的32768端口
MacBook-Pro:~$ docker run -d -P nginx
e10a619300e0907a14c14c5e8a67cc87f4c7fa22be2a4d5e6425409cace8cdb0
MacBook-Pro:~$ docker port e1
80/tcp -> 0.0.0.0:32769
容器互联
创建docker网络
docker network create -d bridge 网络名称
MacBook-Pro:~$ docker network create -d bridge docker_network
694d2300be3c5abe7f24d635af44035b4ae0733efb828cbff4d9a225465e68ab
MacBook-Pro:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
e5430b71a050 bridge bridge local
694d2300be3c docker_network bridge local
c145c93bc2ad host host local
97ebc0b944a7 none null local
容器连接网络
docker run --network 网络名 ....
如
docker run -d --network docker_network --name nginx1 nginx
docker run --network docker_network -it ubuntu bash
看网络是否连通
root@85ea23c89984:/# ping nginx1
PING nginx1 (172.18.0.2) 56(84) bytes of data.
64 bytes from nginx1.docker_network (172.18.0.2): icmp_seq=1 ttl=64 time=0.094 ms
64 bytes from nginx1.docker_network (172.18.0.2): icmp_seq=2 ttl=64 time=0.141 ms
64 bytes from nginx1.docker_network (172.18.0.2): icmp_seq=3 ttl=64 time=0.145 ms
64 bytes from nginx1.docker_network (172.18.0.2): icmp_seq=4 ttl=64 time=0.125 ms