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再更改一下节点列表

相关推荐
YelloooBlue4 小时前
深度学习 SOP: conda通过命令快速构建指定版本tensorflow gpu环境。
深度学习·conda·tensorflow
AI即插即用4 小时前
即插即用系列 | AAAI 2026 WaveFormer: 当视觉建模遇上波动方程,频率-时间解耦的新SOTA
图像处理·人工智能·深度学习·神经网络·计算机视觉·视觉检测
逄逄不是胖胖4 小时前
《动手学深度学习》-55-2RNN的简单实现
人工智能·深度学习
咚咚王者4 小时前
人工智能之核心技术 深度学习 第四章 循环神经网络(RNN)与序列模型
人工智能·rnn·深度学习
2301_803554525 小时前
阻塞,非阻塞,同步,异步以及linux上的5种IO模型阻塞,非阻塞,信号驱动,异步,IO复用
java·服务器·网络
JAVA+C语言5 小时前
多主机 TCP 通信
网络·windows·tcp/ip
susu10830189115 小时前
docker启动kafka
docker·容器·kafka
Gensors传感器5 小时前
Gensors解读:TCP/IP协议在压力扫描系统中的作用详解
网络·网络协议·tcp/ip·压力测试·压力扫描阀·扫描阀
没有bug.的程序员5 小时前
Spring Boot 事务管理:@Transactional 失效场景、底层内幕与分布式补偿实战终极指南
java·spring boot·分布式·后端·transactional·失效场景·底层内幕
云游云记5 小时前
php 网络请求工具全解:cURL 与 Guzzle 总结
开发语言·网络·php