四、网络基础配置

编辑本文章

7.1、端口映射实现访问容器

参数:

-P:容器将一个随机端口映射到容器的5000端口

-p:将宿主机指定接口的指定端口映射到容器5000端口,格式有:ip:hostPort:containerPort(指定接口指定端口),ip::containerPort(映射指定地址任意端口),hostPort:containerPort(映射任意接口指定端口)

映射所有接口时,只需要提供hostPort:containerPort即可,如:docker run -d -p 5000:5000 webapp python app.py

多次使用-p参数可以同时映射多个端口

可以用udp标记指定udp端口,如:docker run -d -p 127.0.0.1:5000:5000/udp webapp python app.py

查看端口映射关系:

  1. docker ps -a能看到所有的
  2. docker port [container ID | container name]

7.2、容器互联实现容器间通信

容器间互联:

用--name参数自定义容器名,记得名称唯一,因为我们要靠它来连接啦,当然如果乐意记一串随机数也未尝不可。

两个容器之间的链接靠--link参数来实现,--link name:alias,其中name是被链接容器名称,alias是该链接的别名

docker run -d -P --name web --link db:web_db training/webapp python app.py

可以用docker inspect 0a9b753d78ea

docker通过两种方式为容器公开链接信息

  1. 环境变量
  2. 更新/etc/hosts文件

查看web服务器的环境变量:

docker run -P --rm --name web --link db:web_db training/webapp env

其中WEB_DB_开头的是web容器链接db容器使用的,采用链接别名的大写模式。

 查看容器更新的hosts文件

docker run -it -P --rm --name web --link db:web_db training/webapp /bin/bash

在web容器中是可以ping通db容器的,注意这里db容器有多个name,都是可以ping通的

 

posted @ 2019-01-09 13:43  丫丫625202  阅读(137)  评论(0编辑  收藏  举报