运维开发网

docker 容器的网络配置

运维开发网 https://www.qedev.com 2020-03-19 11:10 出处:网络 作者:运维开发网整理
Docker 中的网络功能介绍 默认情况下,容器可以建立到外部网络的连接,但是外部网络无法连接到容器。 Docker 允许通过外部访问容器或容器互联的方式来提供网络服务 外部访问容器: 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过  -P  或  -p  参数来指定端口映射。 练习环境:运行一个容器,提供web服务和ssh服务 宿主机启用路由转发(net.ipv4.ip_

   Docker 中的网络功能介绍

默认情况下,容器可以建立到外部网络的连接,但是外部网络无法连接到容器。

Docker 允许通过外部访问容器或容器互联的方式来提供网络服务

外部访问容器:

容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过  -P  或  -p  参数来指定端口映射。

练习环境:运行一个容器,提供web服务和ssh服务

宿主机启用路由转发(net.ipv4.ip_forward=1)

docker 容器的网络配置

准备工作 安装docker

 

docker 容器的网络配置

安装目录下的所有rpm包 (rpm包是提前下载好的,也可以连接网络上的公共YUM仓库)

docker 容器的网络配置

解压已经做好的镜像

docker 容器的网络配置

查看解压完成的镜像是否正确

docker 容器的网络配置

 �CP(大写)标记时,Docker 会随机映射一个随机的端口到内部容器开放的网络端口。

注:-P使用时需要指定--expose选项或dockerfile中用expose指令容器要暴露的端口,指定需要对外提供服务的端口

使用  docker ps  可以看到,本地主机的32770被映射到了容器的22端口,本地主机的32769被映射到了容器的80端口,本地主机的32768被映射到了容器的443 端口。

 

docker 容器的网络配置

验证是隐射到了端口号32770上 采用ssh远程登录的方式验证

docker 容器的网络配置

验证通过32769是否可以访问容器的 web

docker 容器的网络配置

docker -p(小写)可以指定所要映射的端口号

docker 容器的网络配置

docker 容器的网络配置

通过xshell验证是否可以通过指定端口号访问容器的ssh (xshell是一款非常好用的远程连接工具 连接稳定支持Linux绝大多数命令 还可以快速上传本地文件非常方便 本人亲测有效)

 

Docker 网络配置

Docker 四种网络模式

docker run 创建 Docker 容器时,可以用 --net 选项指定容器的网络模式,Docker 有以下 4 种网络模式:

host 模式,使用 --net=host 指定。

container 模式,使用 --net=container:NAMEorID 指定。

none 模式,使用 --net=none 指定。

bridge 模式,使用 --net=bridge 指定,默认设置。

docker 容器的网络配置

host 模式

如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace,而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口。

docker 容器的网络配置

docker 容器的网络配置

防火墙开启80端口

docker 容器的网络配置

docker 的host模式是和宿主机公用一个IP地址 所以访问是直接访问宿主机IP地址就等于访问docker 容器的web服务了

 

 

container 模式

这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过 lo 网卡设备通信。 

docker 容器的网络配置

docker 容器的网络配置

引用刚才创建的容器发现容器的 ip地址和开始创建的一样

0

精彩评论

暂无评论...
验证码 换一张
取 消