求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 

Docker 入门实战
1. Docker 架构
2. Docker 安装
2.1 Ubuntu Docker 安装
2.2 CentOS Docker 安装
2.3 Windows Docker 安装
3. Docker使用
3.1 Docker Hello World
3.2 Docker 容器使用
3.3 Docker 镜像使用
3.4 Docker 容器连接
4. Docker实例
4.1 Docker 安装 Nginx
4.2 Docker 安装 PHP
4.3 Docker 安装 MySQL
4.4 Docker 安装 Tomcat
4.5 Docker 安装 Python
4.6 Docker 安装 Redis
4.7 Docker 安装 MongoDB
4.8 Docker 安装 Apache
5. Docker参考手册
5.1 Docker 常用命令
 
 

Docker 容器连接
58 次浏览
10次
 捐助

Docker 容器连接

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

网络端口映射

我们创建了一个 python 应用的容器。

w3cschool@w3cschool:~$ docker run -d -P training/

webapp python app.py
fce072cc88cee71b1cdceb57c2821d054a4a59f67da6b416

fceb5593f059fc6d

另外,我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1。

我们使用 -P 参数创建一个容器,使用 docker ps 来看到端口5000绑定主机端口32768。

w3cschool@w3cschool:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fce072cc88ce training/webapp "python app.py" 4

minutes ago Up 4 minutes 0.0.0.0:32768->5000/tcp grave_hopper

我们也可以使用 -p 标识来指定容器端口绑定到主机端口。

两种方式的区别是:

-P :是容器内部端口随机映射到主机的高端口。

-p : 是容器内部端口绑定到指定的主机端口。

w3cschool@w3cschool:~$ docker run -d -p 5000:5000

training/webapp python app.py
33e4523d30aaf0258915c368e66e03b49535de0ef203

17d3f639d40222ba6bc0

w3cschool@w3cschool:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
33e4523d30aa training/webapp "python app.py" About a

minute ago Up About a minute 0.0.0.0:5000->5000/

tcp berserk_bartik
fce072cc88ce training/webapp "python app.py" 8

minutes ago Up 8 minutes 0.0.0.0:32768->5000/tcp grave_hopper

另外,我们可以指定容器绑定的网络地址,比如绑定127.0.0.1。

w3cschool@w3cschool:~$ docker run -d -p 127.0.

0.1:5001:5002 training/webapp python app.py
95c6ceef88ca3e71eaf303c2833fd6701d8d1b2572b56

13b5a932dfdfe8a857c
w3cschool@w3cschool:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
95c6ceef88ca training/webapp "python app.py" 6

seconds ago Up 6 seconds 5000/tcp, 127.0.0.1:

5001->5002/tcp adoring_stonebraker
33e4523d30aa training/webapp "python app.py" 3

minutes ago Up 3 minutes 0.0.0.0:5000->5000/tcp

berserk_bartik
fce072cc88ce training/webapp "python app.py" 10

minutes ago Up 10 minutes 0.0.0.0:32768->5000/tcp grave_hopper

这样我们就可以通过访问127.0.0.1:5001来访问容器的5002端口。

上面的例子中,默认都是绑定 tcp 端口,如果要绑定 UPD 端口,可以在端口后面加上 /udp。

w3cschool@w3cschool:~$ docker run -d -p 127.0.0.1

:5000:5000/udp training/webapp python app.py
6779686f06f6204579c1d655dd8b2b31e8e809b245a97b2d

3a8e35abe9dcd22a
w3cschool@w3cschool:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6779686f06f6 training/webapp "python app.py" 4

seconds ago Up 2 seconds 5000/tcp, 127.0.0.1:

5000->5000/udp drunk_visvesvaraya
95c6ceef88ca training/webapp "python app.py" 2

minutes ago Up 2 minutes 5000/tcp, 127.0.0.1:5001->5002/tcp adoring_stonebraker
33e4523d30aa training/webapp "python app.py" 5

minutes ago Up 5 minutes 0.0.0.0:5000->5000/tcp

berserk_bartik
fce072cc88ce training/webapp "python app.py" 12

minutes ago Up 12 minutes 0.0.0.0:32768->5000/tcp grave_hopper

docker port 命令可以让我们快捷地查看端口的绑定情况。

w3cschool@w3cschool:~$ docker port adoring_stonebraker 5002
127.0.0.1:5001

Docker容器连接

1.端口映射并不是唯一把 docker 连接到另一个容器的方法。

2.docker有一个连接系统允许将多个容器连接在一起,共享连接信息。

3.docker连接会创建一个父子关系,其中父容器可以看到子容器的信息。

容器命名

当我们创建一个容器的时候,docker会自动对它进行命名。另外,我们也可以使用--name标识来命名容器,例如:

w3cschool@w3cschool:~$ docker run -d -P

--name youj training/webapp python app.py
43780a6eabaaf14e590b6e849235c75f30129954

03f97749775e38436db9a441

我们可以使用 docker ps 命令来查看容器名称。

w3cschool@w3cschool:~$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS

PORTS NAMES
43780a6eabaa training/webapp "python app.py

" 3 minutes ago Up 3 minutes 0.0.0.0:32769->5000/tcp youj


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



58 次浏览
10次
 捐助

 
 

每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号