docker网络配置方案概览

1、背景介绍
华为云昇腾Snt9B裸金属服务器配备8卡算力资源,支持多人共享服务器进行训练和调测,为避免环境冲突,建议在Docker容器中独立开发。
在分布式训练场景下,需要实现多机、多容器之间的免密登录和网络互通。
2、Docker网络模式
桥接模式(Bridge):Docker容器默认使用桥接模式,该模式下容器使用独立的Network Namespace,连接到docker0虚拟网卡,并通过iptables NAT表与宿主机通信。
Host模式:在Host模式下,容器不会获得独立的Network Namespace,而是与宿主机共用一个Network Namespace,不再拥有隔离的网络栈,直接使用宿主机的IP和端口。
3、配置步骤
基于桥接模式的配置:创建Docker容器时,需要将容器对外暴露的端口与宿主机端口映射,使用命令docker run itd p 18888:22 my_image
将容器的22端口映射到宿主机的18888端口,在宿主机上执行命令开启IP转发,以允许容器内的网络访问。

基于Host模式的配置:使用Host模式时,容器直接使用宿主机的IP和端口,无需端口映射,但仍需配置容器的SSH免密登录信息,以实现多机多容器之间的互访。
4、多机免密互通解决方案
重新制作Docker镜像:在一个容器内配置完成后,打包为镜像并上传到华为云容器管理服务SWR,其他机器拉取该镜像即可实现多机多容器免密登录。
分别配置SSH免密登录信息:参考博客中的解决方案,分别为每个容器配置SSH免密登录信息,以保证多机多容器之间的互相访问。
相关问题与解答
1、如何确保Docker容器在宿主机重启后自动启动?
在安装Docker后,应将Docker进程配置为开机启动,以避免系统重启后Docker未启动导致的异常,可以通过编辑系统的启动配置文件,添加Docker启动命令来实现。
2、Docker容器内的网络服务如何访问宿主机的网络服务?

在Host模式下,由于容器直接使用宿主机的网络,因此容器内的网络服务可以直接访问宿主机的网络服务,而在桥接模式下,通过端口映射的方式,外部访问容器内部服务时会先访问宿主机的地址和端口,再通过iptables规则转发到docker0网桥上进行路由。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复