当前位置: 首页 > article >正文

docker启动训练容器教程

docker启动训练容器

  • 拉取容器镜像

    • 配置代理在国内拉取镜像
  • 容器启动

    • 容器使用显卡
  • conda环境配置

1、拉取容器镜像

docker pull NAME[:TAG]
  • NAME:镜像名称,如ubuntu,mysql等等
  • TAG:镜像标签,通常表示不同版本号,如果不指定则默认latest

拉取完成后使用docker images查看是否有存在拉取的镜像名称

配置代理可以参考Blog,这里不再过多赘述

2、容器启动

在 Docker 中启动容器是通过 docker run 命令完成的,它不仅可以启动容器,还可以在不存在指定镜像时从仓库拉取镜像。以下是如何启动容器的基本步骤和一些重要的注意事项。

启动容器的基本命令

命令格式如下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • IMAGE:镜像的名字和标签(如果未指定标签,默认使用 latest)。
  • COMMANDARG:在容器启动后执行的命令及其参数。

常用选项

  1. -d, --detach:后台运行容器,并打印容器 ID。
  2. --name:为容器指定一个名称,方便后续操作。
  3. -p, --publish:发布容器的端口到宿主机上,格式为 宿主机端口:容器端口
  4. -v, --volume:挂载宿主机的目录或文件到容器内。
  5. --rm:容器退出时自动清理容器文件系统。
  6. -e, --env:设置环境变量。
  7. --restart:设置容器的重启策略,如 alwayson-failureunless-stopped

示例

假设你想运行一个 ubuntu 服务器:

docker run -d --name my-ubuntu -p 8080:80 ubuntu

这个命令将:

  • 在后台启动一个新的容器。
  • 将容器命名为 my-ubuntu
  • 将容器的 80 端口映射到宿主机的 8080 端口。
  • 使用 ubuntu 镜像。

注意事项!!!

  • 端口冲突:确保映射到宿主机的端口未被其他应用占用。如果容器启动后,修改端口会非常麻烦!
  • 挂载:如果容器内的数据是重要的,应该通过 -v 选项挂载数据卷或绑定宿主目录,以防容器删除后数据丢失。挂载非常重要!每一个容器都应该有一个挂载路径,方便与容器进行数据交互!下面给出一个挂载的例子

假设你正在开发一个 Web 应用,你的 HTML 和 JavaScript 文件存放在宿主机的 /path/to/webapp 目录中。你想要将这个目录挂载到运行 ubuntu 服务器的容器中,以便容器可以直接使用这些文件。

docker run -d \
  --name my-ubuntu \
  -v /path/to/webapp:/usr/share/ubuntu/html \
  -p 8080:80 \
  ubuntu

这个命令做了以下几件事:

  • -d 使容器在后台运行。
  • --name my-ubuntu 将容器命名为 my-ubuntu
  • -v /path/to/webapp:/usr/share/ubuntu/html 将宿主机的 /path/to/webapp 目录挂载到容器的 /usr/share/ubuntu/html 目录。这意味着容器中 ubuntu 服务默认的 Web 根目录现在指向你的本地开发目录,任何更改都会立即反映在通过 ubuntu 提供的网页上。
  • -p 8080:80 将容器的 80 端口映射到宿主机的 8080 端口,使你可以通过 http://localhost:8080 访问你的 Web 应用。

2.1、让docker容器使用宿主机显卡

步骤1:检查驱动

首先使用nvidia-smi检查宿主机是否能正常使用显卡

步骤2:安装nvidia-container-toolkit

安装nvidia容器工具包(nvidia-container-toolkit),需要这个工具才能让docker支持nvidia的GPU

如果你使用的是ubuntu可以使用以下命令安装

# 添加安装包存储库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# 安装NVIDIA-DOCKER2软件包,然后重新加载Docker守护程序配置
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker

更详细步骤可以参考官方链接

步骤3:运行支持GPU的容器

安装完 NVIDIA Docker 后,可以通过 --gpus 标志来启动支持 GPU 的容器。例如,如果想运行一个支持GPU使用的ubuntu容器,可以使用以下命令:

docker run --gpus all ubuntu

3、容器内的conda环境安装

进入容器内部后,安装conda环境,有conda和miniconda两个选项

  • conda: 如果你不能明确你的环境要求,建议安装conda,因为里面会预装好常用包,但是会很大很重
  • miniconda: 轻量,如果你明确你需要的库,那么miniconda是最好的选择

这里以安装miniconda为例:

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh

在安装好后,更新资源

source ~/miniconda3/bin/activate

在所有可用的shell中初始化conda

conda init --all

http://www.kler.cn/a/397971.html

相关文章:

  • GitLab 如何降级?
  • WebSocket协议在Java中的整合
  • 【实验11】卷积神经网络(2)-基于LeNet实现手写体数字识别
  • Amazon Web Services (AWS)
  • redis和mongodb等对比分析
  • Springboot采用jasypt加密配置
  • html数据类型
  • 【项目设计技巧】客户端SDK的开发
  • Linux驱动开发——pinctrl 和 和 gpio 子系统实验
  • 前缀和算法习题篇(上)
  • 【点云上采样】最近邻插值上采样算法 增加点云密度
  • C++ 编程基础(5)类与对象 | 5.8、面向对象五大原则
  • vue3中将在线url地址转为图片显示方法教程
  • RabbitMQ 通道(Channel)详解:方法使用、消息确认与拒绝
  • 零基础怎么开始学网络安全(非常详细)零基础入门到精通
  • Mac Java 使用 tesseract 进行 ORC 识别
  • [Qt] Qt删除文本文件中的某一行
  • springboot基于Web足球青训俱乐部管理后台系统开发(代码+数据库+LW)
  • 【SpringBoot】23 文件预览(kkFileView)
  • 前端传数组 数据库存Json : [1,2,3]格式
  • Bugku CTF_Web——文件上传
  • 19.UE5道具掉落
  • 【功耗现象】com.gorgeous.lite后台Camera 使用2小时平均电流200mA耗电量400mAh现象
  • 想租用显卡训练自己的网络?AutoDL保姆级使用教程(PyCharm版)
  • redis序列化数据查询
  • 解决Windows远程桌面 “为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多。请稍后片刻再重试,或与系统管理员或技术支持联系“问题