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

相关推荐
星辰烈龙32 分钟前
黑马程序员JavaSE基础加强d5
服务器·网络·php
单片机系统设计38 分钟前
基于STM32的水质检测系统
网络·stm32·单片机·嵌入式硬件·毕业设计·水质检测
望舒同学1 小时前
Docker上云踩坑实录
docker·全栈
mangge081 小时前
ESP8266 温湿度监测系统教程(SHT30+MAX7219+LeanCloud+HTTP 服务)
网络·网络协议·http
CRUD酱1 小时前
微服务分模块后怎么跨模块访问资源
java·分布式·微服务·中间件·java-ee
Knight_AL1 小时前
MinIO 入门实战:Docker 安装 + Spring Boot 文件上传(公有 / 私有)
spring boot·docker·容器
牛奶皮子1 小时前
合并 CSS 文件可以减少 HTTP 请求数,因为每个请求都会带来额外的网络开销
css·网络·http
阿巴~阿巴~1 小时前
“可达”方能“可靠”:深入解析网络层在TCP通信中的基石作用
运维·服务器·网络·网络协议·tcp/ip·ip·tcp
victory04311 小时前
llama2 MLP 门控FFN
深度学习·transformer
回家路上绕了弯1 小时前
定时任务实战指南:从单机到分布式,覆盖Spring Scheduler/Quartz/XXL-Jo
分布式·后端