Docker 从入门到精通(三)一 网络配置

原文:https://blog.csdn.net/u014743697/article/details/54231827

导读docker 是Linux下面的容器技术,是目前最火的开源技术之一,上次我们了解了docker的本地仓库的搭建,今天我们介绍下docker的容器配置步骤,网络的一些配置。
Docker 配置容器的步骤是:

1.创建一对虚拟接口

2.在主Docker主机内部给它一个唯一的名称,比如veth65f9,绑定它到docker0或者Docker使用的任何网桥上

3.让其他的接口翻墙进入新的容器(已经提供了lo接口),在容器的独立和唯一网络接口命名空间内,重新命名它为更漂亮的名字eth0,名称不要和其他的物理接口冲突。

4.在网桥的网络地址访问内给容器的eth0一个新的IP地址,设置它的缺省路由为Docker主机在网桥上拥有的IP地址。

这些步骤结束后,容器将立即拥有一个eth0(虚拟)网卡,并会发现它自己可以和其他的容器以及互联网通讯。
你可以使用 –net= 这个选项来执行 docker run 启动一个容器,这个选项有一下可选参数。

–net=bridge— 默认选项,用网桥的方式来连接docker容器。

–net=host— docker跳过配置容器的独立网络栈。

–net=container:NAME_or_ID— 告诉docker让这个新建的容器使用已有容器的网络配置。

–net=none— 告诉docker为新建的容器建立一个网络栈,但不对这个网络栈进行任何配置,所以只能访问本地网络,没有外网。
一,桥接模式

这是 docker 默认的网络模式,Docker 后台程序会创建 docker0,一个虚拟的以太网桥,用于自动转发与之连接的任意网络接口间的数据包。在bridge模式下,连在同一网桥上的容器可以相互通信。

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

[root@sta2 docker]# docker run -it -P --name mynginx nginx #为容器做端口映射

使用桥接模式时,docker会创建一个docker0 的网桥,并将这个网络设备加入到docker0网桥中,可以通过brctl show命令查看。

[root@sta2 ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.3e2d35d38bae no vethab6aea2

从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。

容器中的网络配置:

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

查看映射端口配置:
[root@sta2 docker]# docker ps -l

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

或者使用以下方法查看映射端口配置:
[root@sta2 docker]# docker port mynginx 
443/tcp -> 0.0.0.0:32774
80/tcp -> 0.0.0.0:32775

当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口,nginx 映射的端口固定为32774 和 32775。

查看访问日志:
[root@sta2 docker]# docker logs -f mynginx

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

使用 -p(小写的)则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器,-p 标记可以多次使用来绑定多个端口。支持的格式有 ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort 。

可以使用 hostPort:containerPort 映射所有接口地址:
# docker run -d -p 5000:5000 --name mydocker nginx

此时默认会绑定本地所有接口上的所有地址。
可以使用 ip:hostPort:containerPort 格式指定映射使用一个特定地址,映射到指定地址的指定端口

# docker run -d -p 127.0.0.1:5000:5000 --name mydocker nginx

使用 ip::containerPort 绑定 localhost 的任意端口到容器的 5000 端口,本地主机会自动分配一个端口。映射到指定地址的任意端口:

# docker run -d -p 127.0.0.1::5000 --name mydocker nginx

docker 做端口映射时会生成 iptables 规则,端口映射前的 iptables 规则:

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

端口映射后的 iptables 规则:

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

二,host 模式

此模式使用主机的网络

# docker run -it --name feiyu-host --net=host busybox sh

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

三,other container 模式

这种模式下与其他容器共享一个网络

# docker run -it --name feiyu-con --net=container:feiyu busybox sh

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

四,none 模式

这种模式只能访问本地网络,没有外网。

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

导读docker 是Linux下面的容器技术,是目前最火的开源技术之一,上次我们了解了docker的本地仓库的搭建,今天我们介绍下docker的容器配置步骤,网络的一些配置。
Docker 配置容器的步骤是:

1.创建一对虚拟接口

2.在主Docker主机内部给它一个唯一的名称,比如veth65f9,绑定它到docker0或者Docker使用的任何网桥上

3.让其他的接口翻墙进入新的容器(已经提供了lo接口),在容器的独立和唯一网络接口命名空间内,重新命名它为更漂亮的名字eth0,名称不要和其他的物理接口冲突。

4.在网桥的网络地址访问内给容器的eth0一个新的IP地址,设置它的缺省路由为Docker主机在网桥上拥有的IP地址。

这些步骤结束后,容器将立即拥有一个eth0(虚拟)网卡,并会发现它自己可以和其他的容器以及互联网通讯。
你可以使用 –net= 这个选项来执行 docker run 启动一个容器,这个选项有一下可选参数。

–net=bridge— 默认选项,用网桥的方式来连接docker容器。

–net=host— docker跳过配置容器的独立网络栈。

–net=container:NAME_or_ID— 告诉docker让这个新建的容器使用已有容器的网络配置。

–net=none— 告诉docker为新建的容器建立一个网络栈,但不对这个网络栈进行任何配置,所以只能访问本地网络,没有外网。
一,桥接模式

这是 docker 默认的网络模式,Docker 后台程序会创建 docker0,一个虚拟的以太网桥,用于自动转发与之连接的任意网络接口间的数据包。在bridge模式下,连在同一网桥上的容器可以相互通信。

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

[root@sta2 docker]# docker run -it -P --name mynginx nginx #为容器做端口映射

使用桥接模式时,docker会创建一个docker0 的网桥,并将这个网络设备加入到docker0网桥中,可以通过brctl show命令查看。

[root@sta2 ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.3e2d35d38bae no vethab6aea2

从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。

容器中的网络配置:

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

查看映射端口配置:
[root@sta2 docker]# docker ps -l

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

或者使用以下方法查看映射端口配置:
[root@sta2 docker]# docker port mynginx 
443/tcp -> 0.0.0.0:32774
80/tcp -> 0.0.0.0:32775

当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口,nginx 映射的端口固定为32774 和 32775。

查看访问日志:
[root@sta2 docker]# docker logs -f mynginx

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

使用 -p(小写的)则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器,-p 标记可以多次使用来绑定多个端口。支持的格式有 ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort 。

可以使用 hostPort:containerPort 映射所有接口地址:
# docker run -d -p 5000:5000 --name mydocker nginx

此时默认会绑定本地所有接口上的所有地址。
可以使用 ip:hostPort:containerPort 格式指定映射使用一个特定地址,映射到指定地址的指定端口

# docker run -d -p 127.0.0.1:5000:5000 --name mydocker nginx

使用 ip::containerPort 绑定 localhost 的任意端口到容器的 5000 端口,本地主机会自动分配一个端口。映射到指定地址的任意端口:

# docker run -d -p 127.0.0.1::5000 --name mydocker nginx

docker 做端口映射时会生成 iptables 规则,端口映射前的 iptables 规则:

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

端口映射后的 iptables 规则:

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

二,host 模式

此模式使用主机的网络

# docker run -it --name feiyu-host --net=host busybox sh

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

三,other container 模式

这种模式下与其他容器共享一个网络

# docker run -it --name feiyu-con --net=container:feiyu busybox sh

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

四,none 模式

这种模式只能访问本地网络,没有外网。

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置



本文转载自:http://www.linuxprobe.com/docker-network-conf.html

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好,开源站点:http://www.linuxprobe.com/


导读docker 是Linux下面的容器技术,是目前最火的开源技术之一,上次我们了解了docker的本地仓库的搭建,今天我们介绍下docker的容器配置步骤,网络的一些配置。
Docker 配置容器的步骤是:

1.创建一对虚拟接口

2.在主Docker主机内部给它一个唯一的名称,比如veth65f9,绑定它到docker0或者Docker使用的任何网桥上

3.让其他的接口翻墙进入新的容器(已经提供了lo接口),在容器的独立和唯一网络接口命名空间内,重新命名它为更漂亮的名字eth0,名称不要和其他的物理接口冲突。

4.在网桥的网络地址访问内给容器的eth0一个新的IP地址,设置它的缺省路由为Docker主机在网桥上拥有的IP地址。

这些步骤结束后,容器将立即拥有一个eth0(虚拟)网卡,并会发现它自己可以和其他的容器以及互联网通讯。
你可以使用 –net= 这个选项来执行 docker run 启动一个容器,这个选项有一下可选参数。

–net=bridge— 默认选项,用网桥的方式来连接docker容器。

–net=host— docker跳过配置容器的独立网络栈。

–net=container:NAME_or_ID— 告诉docker让这个新建的容器使用已有容器的网络配置。

–net=none— 告诉docker为新建的容器建立一个网络栈,但不对这个网络栈进行任何配置,所以只能访问本地网络,没有外网。
一,桥接模式

这是 docker 默认的网络模式,Docker 后台程序会创建 docker0,一个虚拟的以太网桥,用于自动转发与之连接的任意网络接口间的数据包。在bridge模式下,连在同一网桥上的容器可以相互通信。

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

[root@sta2 docker]# docker run -it -P --name mynginx nginx #为容器做端口映射

使用桥接模式时,docker会创建一个docker0 的网桥,并将这个网络设备加入到docker0网桥中,可以通过brctl show命令查看。

[root@sta2 ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.3e2d35d38bae no vethab6aea2

从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。

容器中的网络配置:

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

查看映射端口配置:
[root@sta2 docker]# docker ps -l

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

或者使用以下方法查看映射端口配置:
[root@sta2 docker]# docker port mynginx 
443/tcp -> 0.0.0.0:32774
80/tcp -> 0.0.0.0:32775

当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口,nginx 映射的端口固定为32774 和 32775。

查看访问日志:
[root@sta2 docker]# docker logs -f mynginx

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

使用 -p(小写的)则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器,-p 标记可以多次使用来绑定多个端口。支持的格式有 ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort 。

可以使用 hostPort:containerPort 映射所有接口地址:
# docker run -d -p 5000:5000 --name mydocker nginx

此时默认会绑定本地所有接口上的所有地址。
可以使用 ip:hostPort:containerPort 格式指定映射使用一个特定地址,映射到指定地址的指定端口

# docker run -d -p 127.0.0.1:5000:5000 --name mydocker nginx

使用 ip::containerPort 绑定 localhost 的任意端口到容器的 5000 端口,本地主机会自动分配一个端口。映射到指定地址的任意端口:

# docker run -d -p 127.0.0.1::5000 --name mydocker nginx

docker 做端口映射时会生成 iptables 规则,端口映射前的 iptables 规则:

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

端口映射后的 iptables 规则:

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

二,host 模式

此模式使用主机的网络

# docker run -it --name feiyu-host --net=host busybox sh

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

三,other container 模式

这种模式下与其他容器共享一个网络

# docker run -it --name feiyu-con --net=container:feiyu busybox sh

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

四,none 模式

这种模式只能访问本地网络,没有外网。

Docker 从入门到精通(三)一 网络配置Docker 从入门到精通(三)一 网络配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker 是一种开源的容器化平台,它可以帮助开发者将应用程序及其依赖项打包成一个独立的容器,并在不同的环境中进行部署和运行。学习 Docker 可以帮助你更有效地构建、交付和运行应用程序。下面是从入门精通 Docker 的一些步骤: 1. 安装 Docker:首先,你需要在你的机器上安装 Docker。你可以根据你的操作系统选择适合的安装包,并按照官方文档的指引进行安装。 2. Docker 基础概念:在开始使用 Docker 之前,了解一些基本概念是很重要的。例如,镜像(Image)是一个只读的模板,用于创建容器(Container);容器是运行中的实例,它可以由镜像创建出来并运行。还有其他一些概念,比如仓库(Repository)、Dockerfile 等。 3. 使用 Docker 镜像:学习如何使用 Docker 镜像是非常重要的。你可以从 Docker Hub 上搜索并下载公共镜像,也可以通过编写 Dockerfile 来创建自定义镜像。了解如何构建、推送和拉取镜像是很有用的。 4. Docker 容器管理:学习如何管理 Docker 容器是必要的。你需要了解如何创建、启动、停止、删除和重启容器。此外,你还可以了解容器资源限制、容器网络配置等方面的知识。 5. Docker 网络Docker 提供了一些网络功能,使得容器之间可以进行通信,也可以与宿主机或其他网络进行通信。学习如何配置 Docker 网络、连接容器、暴露端口等是很有帮助的。 6. Docker 数据管理:学习如何管理 Docker 容器中的数据也是重要的,例如使用数据卷(Volume)或挂载主机目录来持久化容器中的数据。 7. Docker Compose:Docker Compose 是一个用于定义和运行多个容器的工具。学习如何编写 Compose 文件,并使用 Compose 来启动和管理多个相关的容器。 8. Docker Swarm 或 Kubernetes:了解如何使用 Docker Swarm 或 Kubernetes 等容器编排工具来管理多个主机上的容器集群是进一步精通 Docker 的一步。 以上是一些从入门精通 Docker 的基本步骤,你可以根据自己的需求和兴趣进一步深入学习和探索 Docker 的更多功能和用法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值