Docker 容器连接

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

网络端口映射

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

runoob@runoob:~$ docker run -d -P training/webapp python app.py

fce072cc88cee71b1cdceb57c2821d054a4a59f67da6b416fceb5593f059fc6d

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

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

runoob@runoob:~$ 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 :是容器内部端口绑定到指定的主机端口。

runoob@runoob:~$ docker run -d -p 5000:5000 training/webapp python app.py

33e4523d30aaf0258915c368e66e03b49535de0ef20317d3f639d40222ba6bc0

runoob@runoob:~$ 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。

runoob@runoob:~$ docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py

95c6ceef88ca3e71eaf303c2833fd6701d8d1b2572b5613b5a932dfdfe8a857c

runoob@runoob:~$ 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->5000/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 来访问容器的 5000 端口。

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

runoob@runoob:~$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

6779686f06f6204579c1d655dd8b2b31e8e809b245a97b2d3a8e35abe9dcd22a

runoob@runoob:~$ 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->5000/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 命令可以让我们快捷地查看端口的绑定情况。

runoob@runoob:~$ docker port adoring_stonebraker 5000

127.0.0.1:5001

Docker容器连接

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

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

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

容器命名

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

runoob@runoob:~$ docker run -d -P --name runoob training/webapp python app.py

43780a6eabaaf14e590b6e849235c75f3012995403f97749775e38436db9a441

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

runoob@runoob:~$ 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 runoob

调音台docker教程_Docker 容器连接 | 菜鸟教程相关推荐

  1. 调音台docker教程_Docker Hello World | 菜鸟教程

    Docker Hello World Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序. 输出Hello world runoob@runoob: ...

  2. Docker 安装 MySQL(借鉴菜鸟教程)

    Docker 安装 MySQL(借鉴菜鸟教程) docker search mysql 命令来查看可用版本 docker pull mysql:latest(这样是最新版本) docker image ...

  3. python菜鸟教程shell_[python小白]菜鸟教程---

    pycharm竟然是idea大家族里面的,汉化之后不知道比my.eclipse高明到哪里去了.https://blog.csdn.net/pingfangx/article/details/78826 ...

  4. python网页爬虫菜鸟教程_Python 爬取菜鸟教程(www.runoob.com)内容。并保在本地(html格式/pdf格式)...

    最近在开始学Python 也想着做个爬虫玩玩 之前学习(php,jquery...)的时候,经常去菜鸟教程看.索性就将其教程爬下来(打印出来)翻阅起来更有感觉. 好了废话不多说先讲讲我的思路: 首先先 ...

  5. python菜鸟教程100例-对菜鸟教程的Python一百例的个别改进

    开篇语 好吧,其实是我小妹子Python公选课结课,所以我来帮忙做个大作业(简单到哭的大作业好吗?)!她的大作业就是老师把菜鸟教程的Python一百例扒下来做成文档,然后让学生自己找三个验证下!我们当 ...

  6. HTML5菜鸟教程在线编译特效,菜鸟教程在线工具

    菜鸟教程(runoob.com) $.validator.setDefaults({ submitHandler: function() { alert("提交事件!"); } } ...

  7. python菜鸟教程100实例-python菜鸟教程官网

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 之后的某节会讲到如何给mac中的python安装其他模块,比如比较常用的numpy ...

  8. PHP与MySQL连接菜鸟教程_PHP 连接 MySQL - PHP 教程 - 菜鸟学堂-脚本之家

    PHP 连接 MySQL PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved) PDO (PHP Dat ...

  9. mysql服务连接标识_MySQL 连接 | 菜鸟教程

    MySQL 连接 使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库. 实例 以下是从命令行中连接mysql服务器的简单实例: [root@ ...

最新文章

  1. java判断是否为数组_JS如何判断是否是数组?
  2. 站点选择技术RHI、DNS
  3. 使用 icon 字体图标出现小方块问题
  4. Java Web——文件上传(Apache Commons FileUpload实现上传图片DEMO)
  5. (一)javascript面向对象:(1)类
  6. 图像连通域检测的2路算法Code
  7. SQLite轻量级数据库,操作数据常用语句
  8. 中英文对照 —— 机械
  9. leetcode994. 腐烂的橘子(bfs)
  10. c语言传入参数不正确,请高手看看一下程序怎么回事啊?老是提示传参数错误...
  11. 音乐无界限,听见好时光—网易云音乐Linux版震撼来袭!
  12. STM32 - 定时器的设定 - 基础- 0A - Timers and external trigger synchronization - 定时器和外部触发的同步
  13. PowerDesigner(一)-PowerDesigner概述(系统分析与建模)
  14. Linux查询端口是否被占用的四种方法
  15. Visual Studio 2015开发Android App问题集锦
  16. linux tid为2的线程,Linux 线程Pthread(一)创建、终止、获取TID
  17. pypy mysql 兼容_PyPy运行Django+MySQL简单教程
  18. vcenter服务器修改ip,vcSA修改IP或hostname
  19. Spark性能优化之通过YDB实现比原生Spark性能高100倍的多表关联
  20. 知网摘要作者信息爬取和搜狗微信、搜狗新闻的爬虫

热门文章

  1. 检测QQ号码是否存在
  2. go proto 简单学习
  3. RYU+Mininet的SDN架构-设计校园网络(五)
  4. Tensorflow fine-tunning AlexNet
  5. 频繁gc是什么意思_一次性搞清楚线上CPU100%,频繁FullGC排查套路
  6. Java面向对象:多态——基于继承的向上转型、方法重写、动态绑定
  7. 灵境之梦_Python创意自我简介
  8. eclipse注释的快捷键有哪些?
  9. ASEMI代理FS32K146HAT0MLLT原装现货NXP车规级FS32K146HAT0MLLT
  10. 外地购房者揭北京假婚:男女不同价 先签离婚书