一、网络端口映射
容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。
下面我们来实现通过端口连接到一个 docker 容器。
docker run -d -p 5000:5000 training/webapp python app.py
参数说明:
-p : 是容器内部端口绑定到指定的主机端口
通过访问5000端口即可
默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp。
docker run -d -p 5000:5000/udp training/webapp python app.py
二、Docker容器互联
docker 有一个连接系统允许将多个容器连接在一起,共享连接信息。
docker 连接会创建一个父子关系,其中父容器可以看到子容器的信息。
1、容器命名
当我们创建一个容器的时候,docker 会自动对它进行命名。另外,我们也可以使用 —name 标识来命名容器
docker run -d -p 5000:5000 --name wyf_web training/webapp python app.py
2、新建网络
创建一个新的Docker网络
docker network create -d bridge test-net

参数说明:
-d:参数指定 Docker 网络类型,有 bridge、overlay。
其中 overlay 网络类型用于 Swarm mode,在此可以忽略它。
3、连接容器
先运行两个容器并连接到test-net网络
docker run -itd --name test1 --network test-net debian /bin/bashdocker run -itd --name test2 --network test-net debian /bin/bash

下面通过 ping 来证明 test1 容器和 test2 容器建立了互联关系。
如果 test1、test2 容器内中无 ping 命令,则在容器内执行以下命令安装 ping
进入test1容器 ping test2容器
进入test2容器 ping test1容器
这样发现,test1和test2容器建立了互联关系
4、配置DNS
默认创建容器后其DNS是这个样子:
可以在宿主机的 /etc/docker/daemon.json 文件中增加以下内容来设置全部容器的 DNS
"dns" : ["114.114.114.114","8.8.8.8"]

设置后,启动容器的 DNS 会自动配置为 114.114.114.114 和 8.8.8.8。
配置完,需要重启 docker 才能生效。
启动一个新容器查看其DNS信息
