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

相关推荐
顽强卖力13 分钟前
第二十八课:深度学习及pytorch简介
人工智能·pytorch·深度学习
要努力啊啊啊17 分钟前
使用 Python + SQLAlchemy 创建知识库数据库(SQLite)—— 构建本地知识库系统的基础《一》
数据库·人工智能·python·深度学习·自然语言处理·sqlite
啾啾Fun27 分钟前
【Java微服务组件】分布式协调P4-一文打通Redisson:从API实战到分布式锁核心源码剖析
java·redis·分布式·微服务·lua·redisson
wufeil33 分钟前
基于功能基团的3D分子生成扩散模型 - D3FG 评测
深度学习·分子生成·药物设计·ai辅助药物设计·计算机辅助药物设计
小兔子酱#33 分钟前
【Docker 01】Docker 简介
运维·docker·容器
Andrew_Xzw1 小时前
数据结构与算法(快速基础C++版)
开发语言·数据结构·c++·python·深度学习·算法
还有几根头发呀2 小时前
UDP 与 TCP 调用接口的差异:面试高频问题解析与实战总结
网络·网络协议·tcp/ip·面试·udp
阿福不是狗6 小时前
Python使用总结之Mac安装docker并配置wechaty
python·macos·docker
记得开心一点嘛8 小时前
使用MinIO搭建自己的分布式文件存储
分布式·spring cloud·minio
Demisse9 小时前
[华为eNSP] OSPF综合实验
网络·华为