端口映射实现访问容器
在启动容器时,如果不指定参数,外部网络无法访问容器。当容器运行一些网络应用,需要用外部网络访问,可以使用-p或-P参数指定映射端口。
- 使用-P时,docker随机映射一个49000-49900的端口到内部容器的网络端口。
-p
:指定绑定的端口,格式为IP:HostPort:containerPort/Proto
或者IP::ContainerPort/Proto
或者HostPort:ContainerPort/Proto
使用docker port
来查看端口情况。
容器互联
互联系统基于容器名字,所以要合理定义容器的名字。创建容器的时候使用--name
来指定名字。注意:容器名字唯一:docker run -d --name test1 centos
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6eba876ce347 centos "/bin/bash" 51 seconds ago Exited (0) 50 seconds ago test1
再创建一个test2,使之与test1互联,使用--link
参数,格式为:--link name:alias
name为容器的名字,alias为别名。
# docker run -itd --name test2 --link test1:test1 centos
#docker exec -it test2 bash
[root@79234e79b68f /]# ping test1
PING test1 (172.17.0.3) 56(84) bytes of data.
64 bytes from test1 (172.17.0.3): icmp_seq=1 ttl=64 time=0.179 ms
64 bytes from test1 (172.17.0.3): icmp_seq=2 ttl=64 time=0.048 ms
在创建的test2中可以ping通test1,说明连接已建立。
此外,容器之间可以互相绑定。一对多,多对多。根据需要设置。