首页 » 翻译 » Docker » 正文

Docker 入门教程05 关联两个容器 第一部分

原文地址:https://docs.docker.com/userguide/dockerlinks/

在前边的章节中(http://www.503error.com/category/translate/docker/page/2),我们已经知道如何连接一个web服务了,但是使用端口访问的这种形式是我们连接容器内的应用唯一能使用的方法,在本节课中,我们将复习一下端口连接的使用,并告诉大家另外一种连接方式 “容器链接”

使用端口映射连接
docker run -d -P training/webapp python app.py

当一个容器被创建的时候,-P 这个参数的作用是把容器内的端口随机映射到本机的随机端口上,然后我们使用docker ps 我们就可以看到 容器的5000端口被绑定到32768


[root@fedora ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c637a4b0039b training/webapp "python app.py" 3 seconds ago Up 2 seconds 0.0.0.0:32768->5000/tcp hungry_ardinghelli

然后我们如果不想使用32768这样一个随机的端口,我们也可以指定一个端口

docker run -d -p 80:5000 training/webapp python app.py

然后我们就看到这样做的弊端了,因为这样的话,一个特殊的端口只能对应一个容器

我们还有其他的方式使用-P 这个参数,默认情况下,它会绑定本机的所有端口(就是同时监听Localhost,127.0.0.1,还有Ip地址),但是我们也可以指定接口,比如

docker run -d -p 127.0.0.1:80:5000 training/webapp python app.py

这样的话就是绑定到了本机的locahost或127.0.0.1 (这个如果使用ip地址来访问应该是不能访问的)

也可以绑定到localhost的随机端口

docker run -d -p 127.0.0.1::5000 training/webapp python app.py

我们也可以绑定udp

docker run -d -p 127.0.0.1::5000/udp training/webapp pyton app.py

我们也可以通过一个简单的命令查询具体是哪个端口映射到容器的,


[root@fedora ~]# docker port hungry_ardinghelli 5000
0.0.0.0:32768

欢迎转载,转载请注明出处:http://www.503error.com/

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang

Latest posts by Zhiming Zhang (see all)