Linux Docker容器配置

本文详细介绍了如何安装NVIDIAContainerToolkit,配置docker以使用NVIDIA运行时,添加国内镜像,拉取CUDA镜像,创建并管理带有GPU的Docker容器,以及设置SSH服务。
部署运行你感兴趣的模型镜像

1. Installing the NVIDIA Container Toolkit

Installing the NVIDIA Container Toolkit — container-toolkit 1.14.1 documentation
a. Configure the repository

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \
  && \
    sudo apt-get update

b. Install the NVIDIA Container Toolkit packages:

sudo apt-get install -y nvidia-container-toolkit

c. Configuring Docker

Configure the container runtime by using the nvidia-ctk command:

sudo nvidia-ctk runtime configure --runtime=docker

The nvidia-ctk command modifies the /etc/docker/daemon.json file on the host. The file is updated so that Docker can use the NVIDIA Container Runtime.

Restart the Docker daemon:

sudo systemctl restart docker

2. docker hub 镜像

a. 添加国内镜像

vi /etc/docker/daemon.json
{
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    },
    "registry-mirrors":[
            "https://mirror.ccs.tencentyun.com",
            "http://registry.docker-cn.com",
            "http://docker.mirrors.ustc.edu.cn",
            "http://hub-mirror.c.163.com",
            "https://3laho3y3.mirror.aliyuncs.com",
            "http://f1361db2.m.daocloud.io",
            "https://docker.mirrors.sjtug.sjtu.edu.cn",
            "https://docker.nju.edu.cn",
            "https://dockerproxy.com",
            "https://mirror.baidubce.com"
    ],
    "insecure-registries":[
            "registry.docker-cn.com",
            "docker.mirrors.ustc.edu.cn"
    ],
    "debug":true,
    "experimental":true
}

b. 拉取镜像

sudo docker pull nvidia/cuda:11.7.1-cudnn8-devel-ubuntu20.04

需要等待较长时间1-2小时。

c. 创建容器

docker run -it -d --gpus all --name NLP_env --hostname NLP_env --shm-size 8g -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,video -v /home/modeldata:/containerdata -p 6667:22 --restart always nvidia/cuda:11.7.1-cudnn8-devel-ubuntu20.04 /bin/bash

-d 后台运行

--gpus all 选择所有gpu

--name 容器名称

--hostname 主机名称

--shm-size 共享内存

-e 环境设置 这里NVIDIA_DRIVER_CAPABILITIES主要保证容器里能够查看并且使用显卡

-v 目录映射(宿主机:容器内)

-p 端口映射(宿主机:容器内)

--restart always 重启启动

运行

docker ps -a

显示

测试通过

docker exec -it NLP_env nvidia-smi

查看显卡是否在容器内运行正常。

d. 进入容器

docker exec -it NLP_env bash

e. 安装openssh-server

apt update
apt install openssh-server
apt install vim
vim /etc/ssh/sshd_config

将sshd_config内容修改PermitRootLogin yes

service ssh restart
passwd

输入登录密码并确认。

之后可以通过ssh,登录IP,端口号6667,账号root,密码登录即可。

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### 安装和配置Jenkins到Linux Docker容器 #### 准备工作 在开始之前,需确认已安装并运行Docker环境。可以通过`docker --version`验证当前系统的Docker版本是否满足需求[^1]。 #### 配置Docker镜像拉取与启动参数 通过指定端口映射、挂载卷以及特权模式来启动Jenkins容器。以下是完整的命令及其说明: ```bash docker run -d \ -p 8888:8080 \ -p 50000:50000 \ -v /var/jenkins_home:/var/jenkins_home \ -v /etc/localtime:/etc/localtime \ -v $(which docker):/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ --privileged=true \ --restart=always \ --name=jenkins \ jenkins/jenkins:lts ``` 上述命令中: - `-p 8888:8080`: 将主机的8888端口映射至容器内的8080端口。 - `-p 50000:50000`: 映射用于Jenkins节点通信的固定端口。 - `-v /var/jenkins_home:/var/jenkins_home`: 挂载数据目录以便持久化存储。 - `$(which docker):/usr/bin/docker`: 提供宿主机上的Docker二进制文件路径给容器内部使用。 - `/var/run/docker.sock:/var/run/docker.sock`: 共享Docker套接字以允许容器控制宿主机上的Docker服务[^2]。 #### 设置时间区域与时区同步 为了确保日志记录的时间一致性,在启动选项中加入JAVA_OPTS变量定义时区为亚洲上海标准时间: ```bash -e JAVA_OPTS="-Duser.timezone=Asia/Shanghai" ``` 此操作可以防止因不同地区默认设置造成的时间差异问题[^4]。 #### 进一步集成Docker支持 如果计划让Jenkins管理其他Docker容器,则需要调整其插件配置或者直接修改全局工具配置下的Docker Host URI字段指向本地Unix Socket地址:`unix:///var/run/docker.sock`, 同时启用对应权限开关[^3]。 完成以上步骤后访问浏览器输入http://<your-server-ip>:8888即可进入初始向导界面完成后续初始化流程。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值