阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

基础的 Docker 容器网络命令

187次阅读
没有评论

共计 2625 个字符,预计需要花费 7 分钟才能阅读完成。

各位好,今天我们将学习一些 Docker 容器的基础命令。Docker 是一个开源项目,提供了一个可以打包、装载和运行任何应用的轻量级容器的开放平台。它没有语言支持、框架和打包系统的限制,从小型的家用电脑到高端服务器,在何时何地都可以运行。它可以使部署和扩展 web 应用程序、数据库和后端服务像搭积木一样容易,而不依赖特定技术栈或提供商。Docker 适用于网络环境,它正应用于数据中心、ISP 和越来越多的网络服务。

因此,这里有一些你在管理 Docker 容器的时候会用到的一些命令。

基础的 Docker 容器网络命令

1. 找到 Docker 接口

Docker 默认会创建一个名为 docker0 的网桥接口作为连接外部世界的基础。运行中的 docker 容器直接连接到网桥接口 docker0。默认上,docker 会分配 172.17.42.1/16 给 docker0,它是所有运行中的容器 ip 地址的子网。找到 Docker 接口的 ip 地址非常简单。要找出 docker0 网桥接口和连接到网桥上的 docker 容器,我们可以在安装了 docker 的终端或者 shell 中运行 ip 命令。

  1. # ip a

基础的 Docker 容器网络命令

2. 得到 Docker 容器的 ip 地址

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

  1. # docker run -it Ubuntu

现在,我们可以运行 ip a 来得到容器的 ip 地址了。

  1. # ip a

基础的 Docker 容器网络命令

3. 映射暴露的端口

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

  1. # docker run -itd -P httpd

基础的 Docker 容器网络命令

上面的命令会映射容器的端口到 httpd 容器的 Dockerfile 中定义的 80 端口上。我们用下面的命令来查看正在运行的容器暴露的端口。

  1. # docker ps

并且可以用下面的 curl 命令来检查。

  1. # curl http://localhost:49153

基础的 Docker 容器网络命令

4. 映射到特定的端口上

我们也可以映射暴露端口或者 docker 容器端口到我们指定的端口上。要实现这个,我们用 - p 标志来定义我们所需的端口。这里是我们的一个例子。

  1. # docker run -itd -p 8080:80 httpd

上面的命令会映射(宿主机的)8080 端口到(容器的)80 上。我们可以运行 curl 来检查这点。

  1. # curl http://localhost:8080

基础的 Docker 容器网络命令

5. 创建自己的网桥

要给容器创建一个自定义的 IP 地址,在本篇中我们会创建一个名为 br0 的新网桥。要分配需要的 ip 地址,我们需要在运行 docker 的宿主机中运行下面的命令。

  1. # stop docker.io
  2. # ip link add br0 type bridge
  3. # ip addr add 172.30.1.1/20 dev br0
  4. # ip link set br0 up
  5. # docker -d -b br0

基础的 Docker 容器网络命令

创建完 docker 网桥之后,我们要让 docker 的守护进程知道它。

  1. # echo 'DOCKER_OPTS="-b=br0"' >> /etc/default/docker
  2. # service docker.io start

基础的 Docker 容器网络命令

到这里,桥接后的接口将会分配给容器在桥接子网内的新 ip 地址。

6. 链接到另外一个容器上

我们可以用 Docker 将一个容器连接到另外一个上。我们可以在不同的容器上运行不同的程序,并且相互连接或链接。链接允许容器间相互连接并从一个容器上安全地传输信息给另一个容器。要做到这个,我们可以使用 –link 标志。首先,我们使用 –name 标志来标示 training/postgres 镜像。

  1. # docker run -d --name db training/postgres

基础的 Docker 容器网络命令

完成之后,我们将容器 db 与 training/webapp 链接来形成新的叫 web 的容器。

  1. # docker run -d -P --name web --link db:db training/webapp Python app.py

基础的 Docker 容器网络命令

总结

Docker 网络很神奇也好玩,我们可以对 docker 容器做很多事情。我们可以把玩这些简单而基础的 docker 网络命令。docker 的网络是非常先进的,我们可以用它做很多事情。

如果你有任何的问题、建议、反馈请在下面的评论栏写下来以便于我们我们可以提升或者更新文章的内容。谢谢!玩得开心!:-)

如何在 Ubuntu 14.10 上安装 WordPress?http://www.linuxidc.com/Linux/2015-02/112648.htm

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

在 Docker 中使用 MySQL http://www.linuxidc.com/Linux/2014-01/95354.htm

在 Ubuntu Trusty 14.04 (LTS) (64-bit) 安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.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.linuxidc.com/Linux/2015-06/118677.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2625字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中