设为首页 收藏本站
查看: 1375|回复: 0

[经验分享] 基础的 Docker 容器网络命令

[复制链接]

尚未签到

发表于 2015-12-25 03:36:06 | 显示全部楼层 |阅读模式
基础的 Docker 容器网络命令
[日期:2015-06-11]来源:Linux中国  作者:Linux[字体:大 中 小]


  各位好,今天我们将学习一些Docker容器的基础命令。Docker 是一个开源项目,提供了一个可以打包、装载和运行任何应用的轻量级容器的开放平台。它没有语言支持、框架和打包系统的限制,从小型的家用电脑到高端服务器,在何时何地都可以运行。它可以使部署和扩展web应用程序、数据库和后端服务像搭积木一样容易,而不依赖特定技术栈或提供商。Docker适用于网络环境,它正应用于数据中心、ISP和越来越多的网络服务。
  因此,这里有一些你在管理Docker容器的时候会用到的一些命令。
DSC0000.jpg
1. 找到Docker接口
  Docker默认会创建一个名为docker0的网桥接口作为连接外部世界的基础。运行中的docker容器直接连接到网桥接口docker0。默认上,docker会分配172.17.42.1/16给docker0,它是所有运行中的容器ip地址的子网。找到Docker接口的ip地址非常简单。要找出docker0网桥接口和连接到网桥上的docker容器,我们可以在安装了docker的终端或者shell中运行ip命令。

  • # ip a
DSC0001.png
2. 得到Docker容器的ip地址
  如我们上面读到的,docker在宿主机中创建了一个叫docker0的网桥接口。在我们创建一个新的docker容器时,它自动被默认分配了一个在该子网范围内的ip地址。因此,要检测运行中的Docker容器的ip地址,我们需要进入一个正在运行的容器并用下面的命令检查ip地址。首先,我们运行一个新的容器并进入其中。如果你已经有一个正在运行的容器,你可以跳过这个步骤。

  • # docker run -it Ubuntu
  现在,我们可以运行ip a来得到容器的ip地址了。

  • # ip a
DSC0002.png
3. 映射暴露的端口
  要映射配置在Dockerfile的暴露端口到宿主机的高位端口,我们只需用下面带上-P标志的命令。这会打开docker容器的随机端口并映射到Dockerfile中定义的端口。下面是使用-P来打开/暴露定义的端口的例子。

  • # docker run -itd -P httpd
DSC0003.png
  上面的命令会映射容器的端口到 httpd 容器的 Dockerfile 中定义的80端口上。我们用下面的命令来查看正在运行的容器暴露的端口。

  • # docker ps
  并且可以用下面的curl命令来检查。

  • # curl http://localhost:49153
DSC0004.png
4. 映射到特定的端口上
  我们也可以映射暴露端口或者docker容器端口到我们指定的端口上。要实现这个,我们用-p标志来定义我们所需的端口。这里是我们的一个例子。

  • # docker run -itd -p 8080:80 httpd
  上面的命令会映射(宿主机的)8080端口到(容器的)80上。我们可以运行curl来检查这点。

  • # curl http://localhost:8080
DSC0005.png
5. 创建自己的网桥
  要给容器创建一个自定义的IP地址,在本篇中我们会创建一个名为br0的新网桥。要分配需要的ip地址,我们需要在运行docker的宿主机中运行下面的命令。

  • # stop docker.io
  • # ip link add br0 type bridge
  • # ip addr add 172.30.1.1/20 dev br0
  • # ip link set br0 up
  • # docker -d -b br0
DSC0006.png
  创建完docker网桥之后,我们要让docker的守护进程知道它。

  • # echo 'DOCKER_OPTS="-b=br0"' >> /etc/default/docker
  • # service docker.io start
DSC0007.png
  到这里,桥接后的接口将会分配给容器在桥接子网内的新ip地址。
6. 链接到另外一个容器上
  我们可以用Docker将一个容器连接到另外一个上。我们可以在不同的容器上运行不同的程序,并且相互连接或链接。链接允许容器间相互连接并从一个容器上安全地传输信息给另一个容器。要做到这个,我们可以使用--link标志。首先,我们使用--name标志来标示training/postgres镜像。

  • # docker run -d --name db training/postgres
DSC0008.png
  完成之后,我们将容器db与training/webapp链接来形成新的叫web的容器。

  • # docker run -d -P --name web --link db:db training/webapp python app.py
DSC0009.png
总结
  Docker网络很神奇也好玩,我们可以对docker容器做很多事情。我们可以把玩这些简单而基础的docker网络命令。docker的网络是非常先进的,我们可以用它做很多事情。
  如果你有任何的问题、建议、反馈请在下面的评论栏写下来以便于我们我们可以提升或者更新文章的内容。谢谢! 玩得开心!:-)
  如何在Ubuntu 14.10 上安装WordPress?  http://www.iyunv.com/Linux/2015-02/112648.htm
  Docker安装应用(CentOS 6.5_x64) http://www.iyunv.com/Linux/2014-07/104595.htm
  在 Docker 中使用 MySQL http://www.iyunv.com/Linux/2014-01/95354.htm
  在Ubuntu Trusty 14.04 (LTS) (64-bit)安装Docker http://www.iyunv.com/Linux/2014-10/108184.htm
  Docker安装应用(CentOS 6.5_x64) http://www.iyunv.com/Linux/2014-07/104595.htm
  Ubuntu 14.04安装Docker  http://www.iyunv.com/linux/2014-08/105656.htm
  阿里云CentOS 6.5 模板上安装 Docker http://www.iyunv.com/Linux/2014-11/109107.htm
  Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里
  via: http://linoxide.com/linux-how-to/networking-commands-docker-containers/
  作者:Arun Pyasi 译者:geekpi 校对:wxy
  本文由 LCTT 原创翻译,Linux中国 荣誉推出
  本文永久更新链接地址:http://www.iyunv.com/Linux/2015-06/118677.htm
DSC00010.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-155887-1-1.html 上篇帖子: 进入docker容器之nsenter脚本 下篇帖子: docker初次安装与实践
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表