docker内实现多机多卡分布式训练

docker内实现多机多卡分布式训练

    • [1. 多台docker宿主机网络配置](#1. 多台docker宿主机网络配置)
    • [2. 创建overlay 网络](#2. 创建overlay 网络)
    • [3. 注意](#3. 注意)

1. 多台docker宿主机网络配置

https://docs.docker.com/network/overlay/

这里需要创建overlay网络使得多台宿主机的容器可以通过网络连接

初始化swarm集群,并设置主节点(当前节点ip)

在其他节点运行以上蓝色框内的命令以作为worker 节点加入该集群

bash 复制代码
docker swarm join --token SWMTKN-1-35a9fwltowe90q1p4zyqnz110w9oenf0huoljje7n03kice4ae-byq3wrcqpr50i622z8foy5f0l 10.112.205.39:2377

然后可以在该worker节点上运行docker info查看,对应Swarm的内容,以下显示10.112.57.233 已经作为非管理者的身份加入集群

加入后可以在管理节点上运行docker node ls查看集群状态

2. 创建overlay 网络

在集群里创建一个my-attachable-overlay的虚拟网络 创建overlay 网络,名字任取。这里是jxh-overlay

使用创建的overlay 网络建立容器,启动容器时使用创建的网络

bash 复制代码
docker run -it --privileged=true --runtime=nvidia --gpus all --net=jxh-overlay -v /home/jxh/nccl:/home/nccl --name nccl  nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 bash

以该网络创建的容器间可以直接通信.

两边容器都启动后,可以ifconfig分别查看机器分配到的IP

然后互相可以ping一下试试,应该是可以ping通的

3. 注意

注意:这里使用overlay网络模式创建的docker重启后分配的ip是会变的,在实际多机多卡训练中需要每次看一下分配的ip再更改一下节点列表

相关推荐
灯澜忆梦6 小时前
GO_网络编程---文件传输实战
网络·golang·php
tiantianuser7 小时前
NVME-oF IP 设计9 :为什么选RDMA传输?
网络·网络协议·tcp/ip
@LuckY BoY7 小时前
mtu详解
网络
Yang96117 小时前
多场景电磁干扰排查方案,鼎讯信通 DXL-400E 适配野外与室内运维
网络
OpenApi.cc7 小时前
来了,来了,我来了,Mocode
人工智能·深度学习·神经网络·目标检测·数据挖掘
逍遥德8 小时前
运维技术栈Linux+docker+Kubernetes+Jenkins/GitLab CI 知识点详细列表
linux·运维·docker
gongzhxu8 小时前
DumpAny —— 一款支持 HTTP / gRPC / MySQL / Redis 的全能网络调试工具
网络·测试工具·http·rpc
名字还没想好☜8 小时前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
三川6989 小时前
深入浅出SSD 09:NVMe介绍
网络
冰封之寂9 小时前
Docker 部署与基础命令详解:从安装到容器管理全流程指南
linux·运维·docker·容器