要创建一个安全并且能够协同运行的 Web 应用程序,你需要创建一个网络。
通过网络,在默认情况下为容器提供了完全独立的环境。在你第一次运行一个容器的时候,你可以将容器添加到一个网络中。
例如,我们希望运行一个容器来运行 PostgreSQL 数据库,并且传递 --net=my_bridge 标记来到你新网络的连接中,可以运行下面的命令:
$ docker run -d --net=my_bridge --name db training/postgres
如果你检查你的 my_bridge ,你可以看到已经有一个容器被添加(attached)上去了。
你也可以检查你的容器来查看连接在哪里:
$ docker inspect --format='{{json .NetworkSettings.Networks}}' db {"my_bridge":{"NetworkID":"7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99", "EndpointID":"508b170d56b2ac9e4ef86694b0a76a22dd3df1983404f7321da5649645bf7043","Gateway":"10.0.0.1","IPAddress":"10.0.0.254","IPPrefixLen":24,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}}
现在,你可以使用你熟悉的命令来启动一个 Web 应用程序了。这次不需要指定一个网络。
$ docker run -d --name web training/webapp python app.py

bridge2720×448 26.8 KB
你的 web 应用运行在哪个网络下呢?可以检查应用来确定这个应用运行在默认的 桥接(bridge) 网络。
$ docker inspect --format='{{json .NetworkSettings.Networks}}' web {"bridge":{"NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812", "EndpointID":"508b170d56b2ac9e4ef86694b0a76a22dd3df1983404f7321da5649645bf7043","Gateway":"172.17.0.1","IPAddress":"10.0.0.2","IPPrefixLen":24,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}}
然后获得你 web 应用的 IP 地址。
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web 172.17.0.2
现在,可以打开一个 shell 来运行 db 容器:
$ docker container exec -it db bash root@a205f0dd33b2:/# ping 172.17.0.2 ping 172.17.0.2 PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data. ^C --- 172.17.0.2 ping statistics --- 44 packets transmitted, 0 received, 100% packet loss, time 43185ms
在过一段时间后,可以使用 CTRL-C 来终止 ping 命令,请注意 ping 显示终止了。
这是因为这个 2 个容器运行在不同的网络中,你可以使用 exit 命令来关闭容器进行修复。
Docker 网络运行你附件一个容器到多个你愿意的网络上。你甚至可以添加到一个正在运行的容器上。
运行下面的命令,将 web 应用添加到 my_bridge 网络上。
$ docker network connect my_bridge web

打开 shell 然后再次进入 db 应用,然后尝试使用 ping 命令。这次你可以仅仅使用容器的名字 web 就可以了,而不需要使用 IP 地址。
$ docker container exec -it db bash root@a205f0dd33b2:/# ping web PING web (10.0.0.2) 56(84) bytes of data. 64 bytes from web (10.0.0.2): icmp_seq=1 ttl=64 time=0.095 ms 64 bytes from web (10.0.0.2): icmp_seq=2 ttl=64 time=0.060 ms 64 bytes from web (10.0.0.2): icmp_seq=3 ttl=64 time=0.066 ms ^C --- web ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.060/0.073/0.095/0.018 ms
命令 ping 显示连接到了一个不同的 IP 地址,这个在 my_bridge 上的 IP 地址与 bridge 网络上的 IP 地址是不同的。

c++ 打开添加删除程序_Docker 添加容器到一个网络相关推荐

  1. 解决“添加删除程序”里面隐藏问题

    在C:\Windows\Inf下找到Sysoc.inf文件,用记事本程序打开它,该文件显示了当前已安装程序的部分列表.我们拿MSN Messenger来做个实验,在其中找到这一句"msmsg ...

  2. 巧用FC5的“添加/删除程序”(转)

    巧用FC5的"添加/删除程序"(转) 安装完后可以看到,FC5菜单结构中有个很明显的变化就是在"应用程序"的最下方,出现了"Add/remove so ...

  3. 服务器2003系统怎么卸载软件,WindowsXP系统添加删除程序的方法

    在使用电脑的过程中,我们常常需要安装或删除一些程序,可是就这么简单的操作很多用户表示不会,那么WindowsXP系统怎么添加删除程序呢?不懂的朋友赶紧来看看小编整理的WindowsXP系统添加删除程序 ...

  4. 如何从“添加/删除程序”列表中手动删除程序

    重要说明:本文包含有关修改注册表的信息.修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表.有关如何备份.还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsof ...

  5. 隐藏添加删除程序中的程序在控制面板中的“添加/删除程序”项

    隐藏添加删除程序中的程序在控制面板中的"添加/删除程序"项是我们要卸载程序一个程序最彻底的地方.但很多时候为了防止自己安装的程序不被别人卸载,我们希望能够在"添加/删除程 ...

  6. WIN2000控制面板的添加删除程序不能正常运行时的修复

    在WIN2000下,经常碰到由于系统文件未注册或丢失导致不能正常打开添加删除程序.按MS KB266668,可对其进行修复. 参考:http://support.microsoft.com/?kbid ...

  7. 隐藏/显示“添加删除程序”的软件

    解决"添加删除程序"里面隐藏问题 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. http://11198908.blog ...

  8. 在不能使用添加/删除程序时如何卸载软件

    序:在卸载软件时,出现不能使用卸载程序和无法找到uninstall程序,本文借鉴于博客,网址为在不能使用添加/删除程序时如何卸载NI软件 - NI. 步骤如下: 1. WIN+R键,打开Windows ...

  9. 让软件不在添加删除程序_功能强大却鲜为人知的四款软件,一但发现就无法自拔...

    Uninstall Tool Uninstall Tool是一款专业且实用的卸载软件. 电脑上流氓软件很多,有时候你想卸载,却无法卸载,那么你可以试试它,它比Windows自带的"添加/删除 ...

最新文章

  1. 图结构练习——DFS——判断可达性
  2. SD-WAN部署:全球企业必须考虑的问题—Vecloud微云
  3. Oracle 1204 RAC failover 测试 (五)
  4. 这5种员工,千万不能重用
  5. Vue2.0+ElementUI+PageHelper实现的表格分页
  6. window.onload=function(){};
  7. iOS——使用StroryBoard页面跳转及传值
  8. python打开文件注意事项_Python 中关于文件操作的注意事项
  9. csdn下载频道处理公告
  10. 中国全国行政区代码表
  11. http请求axios封装
  12. 秩和检验的概念及python实现
  13. 《思考力---引爆无限潜能》书摘(一)
  14. Python数据分析--统计注册用户
  15. 通过ajax记录打印信息
  16. 【neutron】Neutron的基本原理与代码实现
  17. 【消息中间件MQ分享】
  18. .Net发布到IIS服务器,IIS服务器配置
  19. JavaScript 音乐导航(缓动动画、会唱歌的导航)
  20. 汽车操作系统攻防综述

热门文章

  1. 宏基因组序列物种分类之kraken 1/2和Bracken的使用
  2. R语言ggplot2可视化:可视化斜率图、对比同一数据对象随着时间推移多个状态的差异(Slope Chart)、例如、对比不同癌症5年期、10年期、15年期存活率的差异
  3. R语言ggplot2可视化:ggplot2可视化使用labs函数为可视化图像添加(caption)图片说明文字、theme_bw中指定参数base_size来改变图片说明文字、轴标签等的大小
  4. matplotlib生成指定大小的空白的白色图(故意保存)实战:当然也可以保存正常的有内容的图像
  5. R语言ggplot2可视化使用ggsave将可视化图像结果保存为SVG文件实战
  6. pandas对dataframe的数据行(rows)进行随机抽样:使用sample函数进行数据行(rows)随机抽样
  7. R语言均匀分布函数uniform Distribution(dunif, punif, qunif runif)实战
  8. python使用matplotlib绘制水平条形图并在条形图上添加实际数值标签实战
  9. GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练
  10. 什么是自然语言处理?自然语言处理可以分为四大类?有哪些具体任务?