千家信息网

docker学习5:Docker 容器连接

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,参考:http://www.runoob.com/docker/docker-container-connection.html前面我们实现了通过网络端口来访问运行在docker容器内的服务。下面我们
千家信息网最后更新 2026年11月02日docker学习5:Docker 容器连接参考:http://www.runoob.com/docker/docker-container-connection.html


前面我们实现了通过网络端口来访问运行在docker容器内的服务。下面我们来实现通过端口连接到一个docker容器


网络端口映射
我们创建了一个 python 应用的容器。


[root@huixuan ~]# docker run -d -P training/webapp python app.py
eda68d54e9976f0894461dc61b35fb1ebc607ae19954bb76fd68a316ece6027d
[root@huixuan ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest 3a42651974ec 7 minutes ago 199 MB
tonykorn97/centos dev 3a42651974ec 7 minutes ago 199 MB
tonykorn97/ubuntu v2 6bb0f7a6d1e6 34 minutes ago 137 MB
3248dea71f18 36 minutes ago 137 MB
docker.io/ubuntu 14.04 8cef1fa16c77 3 days ago 223 MB
docker.io/hello-world latest e38bc07ac18e 2 weeks ago 1.85 kB
docker.io/centos e934aafc2206 3 weeks ago 199 MB
docker.io/ubuntu 15.10 9b9cb95443b5 21 months ago 137 MB
docker.io/training/webapp latest 6fae60ef3446 2 years ago 349 MB
[root@huixuan ~]#


另外,我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1。
我们使用 -P 参数创建一个容器,使用 docker ps 来看到端口1026绑定主机端口5000。


[root@huixuan ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eda68d54e997 training/webapp "python app.py" 3 minutes ago Up 2 minutes 0.0.0.0:1026->5000/tcp blissful_goldstine
0e044f323370 training/webapp "python app.py" About an hour ago Up About an hour 0.0.0.0:5000->5000/tcp admiring_goldwasser
[root@huixuan ~]#


我们也可以使用 -p 标识来指定容器端口绑定到主机端口。
两种方式的区别是:
-P :是容器内部端口随机映射到主机的高端口。
-p : 是容器内部端口绑定到指定的主机端口。


[root@huixuan ~]# docker run -d -p 5000:5000 training/webapp python app.py
56af280bb2b399399a9a40a5fa52ac0d7e787cca7ac2446ccbbb3faecccde935
/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint laughing_heisenberg (b3ee694cd9c6bb3f7c8d7129aca3bf99b5eabc023daab0d08a5e78358d23b08e): Bind for 0.0.0.0:5000 failed: port is already allocated.
[root@huixuan ~]# docker stop 0e044f323370
0e044f323370
[root@huixuan ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eda68d54e997 training/webapp "python app.py" 5 minutes ago Up 5 minutes 0.0.0.0:1026->5000/tcp blissful_goldstine
[root@huixuan ~]# docker run -d -p 5000:5000 training/webapp python app.py
fcced8f54a68432cb652a7b755047160869ff9110cd6ec2b850f14a666a72b28
[root@huixuan ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fcced8f54a68 training/webapp "python app.py" 3 seconds ago Up 2 seconds 0.0.0.0:5000->5000/tcp kickass_pare
eda68d54e997 training/webapp "python app.py" 5 minutes ago Up 5 minutes 0.0.0.0:1026->5000/tcp blissful_goldstine
[root@huixuan ~]#


另外,我们可以指定容器绑定的网络地址,比如绑定127.0.0.1。
[root@huixuan ~]# docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
eda9d7e0083933213dff616a38e39975c89783f018ae9554c87493cc2028e247
[root@huixuan ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eda9d7e00839 training/webapp "python app.py" 3 seconds ago Up 2 seconds 127.0.0.1:5001->5000/tcp mystifying_haibt
fcced8f54a68 training/webapp "python app.py" About a minute ago Up About a minute 0.0.0.0:5000->5000/tcp kickass_pare
eda68d54e997 training/webapp "python app.py" 6 minutes ago Up 6 minutes 0.0.0.0:1026->5000/tcp blissful_goldstine
[root@huixuan ~]#




这样我们就可以通过访问127.0.0.1:5001来访问容器的5000端口。
上面的例子中,默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp。


[root@huixuan ~]# docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
2eaa281d655cf95a2df079b8488e0e5cc64850e610ad522ba14a0e2ba9ca2e02
[root@huixuan ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2eaa281d655c training/webapp "python app.py" 2 seconds ago Up 1 second 5000/tcp, 127.0.0.1:5000->5000/udp nifty_swirles
eda9d7e00839 training/webapp "python app.py" About a minute ago Up About a minute 127.0.0.1:5001->5000/tcp mystifying_haibt
fcced8f54a68 training/webapp "python app.py" 2 minutes ago Up 2 minutes 0.0.0.0:5000->5000/tcp kickass_pare
eda68d54e997 training/webapp "python app.py" 8 minutes ago Up 8 minutes 0.0.0.0:1026->5000/tcp blissful_goldstine
[root@huixuan ~]#




docker port 命令可以让我们快捷地查看端口的绑定情况。
[root@huixuan ~]# docker port 2eaa281d655c
5000/udp -> 127.0.0.1:5000
[root@huixuan ~]# docker port eda9d7e00839
5000/tcp -> 127.0.0.1:5001
[root@huixuan ~]#






Docker容器连接
端口映射并不是唯一把 docker 连接到另一个容器的方法。
docker有一个连接系统允许将多个容器连接在一起,共享连接信息。
docker连接会创建一个父子关系,其中父容器可以看到子容器的信息。


容器命名
当我们创建一个容器的时候,docker会自动对它进行命名。另外,我们也可以使用--name标识来命名容器,例如:
先把之前的停止掉:
[root@huixuan ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fcced8f54a68 training/webapp "python app.py" 29 minutes ago Up 29 minutes 0.0.0.0:5000->5000/tcp kickass_pare
eda68d54e997 training/webapp "python app.py" 35 minutes ago Up 35 minutes 0.0.0.0:1026->5000/tcp blissful_goldstine
[root@huixuan ~]# docker stop fcced8f54a68
fcced8f54a68
[root@huixuan ~]# docker stop eda68d54e997
eda68d54e997
[root@huixuan ~]#




[root@huixuan ~]# docker run -d -P --name tonykorn97 training/webapp python app.py
c793b0a10ab17912d4b7138bd58f201dcc7479b27840426a79d3e3d921af7d6e




我们可以使用 docker ps 命令来查看容器名称。
[root@huixuan ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c793b0a10ab1 training/webapp "python app.py" 7 seconds ago Up 6 seconds 0.0.0.0:1027->5000/tcp tonykorn97
[root@huixuan ~]#
容器 端口 主机 网络 信息 命令 地址 标识 会创 例子 参数 可以通过 名称 多个 情况 方式 方法 时候 父子 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳恒合互联网络科技有限公司 疫情对互联网科技公司影响 互联网核心科技是什么 科技类互联网 西安互联网科技 上海喔噻互联网科技 广州善班互联网科技 互联网科技股有哪些 字节跳动和互联网科技 栖莱科技互联网股份有限公司 浙江互联网科技研学营 赶超互联网科技 微信多开 中国航天科技大学国际工业互联网 阿大互联网科技有限公司 深圳市优智互联网科技有限公司 乌苏新华互联网科技做什么的 互联网行业科技股 互联网科技资金流入 互联网科技职业技能培训学校 承德科技产业互联网平台 南京欣网互联网络科技 互联网科技公司官网 顺玮阁互联网科技 撒么互联网科技公司 佰商互联网科技有限公司 互联网金融监管科技 深圳前海聚择互联网科技有限公司 温州喔噻互联网科技有限公司 互联网科技实习生岗位职责 知域互联网科技有限公司官网
0