docker--端口映射与容器互联

来源:互联网 发布:linux exec用法 编辑:程序博客网 时间:2024/06/10 20:13

端口映射实现访问容器

在启动容器时,如果不指定参数,外部网络无法访问容器。当容器运行一些网络应用,需要用外部网络访问,可以使用-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 -aCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES6eba876ce347        centos              "/bin/bash"         51 seconds ago      Exited (0) 50 seconds ago                       test1

再创建一个test2,使之与test1互联,使用--link参数,格式为:--link name:aliasname为容器的名字,alias为别名。

#  docker run -itd --name test2 --link test1:test1 centos#docker exec -it test2 bash[root@79234e79b68f /]# ping test1PING 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 ms64 bytes from test1 (172.17.0.3): icmp_seq=2 ttl=64 time=0.048 ms

在创建的test2中可以ping通test1,说明连接已建立。

此外,容器之间可以互相绑定。一对多,多对多。根据需要设置。