docker启动训练容器教程

news/2024/11/17 21:37:35/

docker_0">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 应用。

docker_86">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.ppmy.cn/news/1547811.html

相关文章

护眼模式浓度调整到最低

护眼模式浓度调整到最低 diff --git a/alps-mp-t0/frameworks/base/core/res/res/values/config.xml b/alps-mp-t0/frameworks/base/core/res/res/values/config.xml index f6ee1a97592..45c83baac63 100755 --- a/alps-mp-t0/frameworks/base/core/res/res/values/config.xml…

Vue 3 中的 ref 完全指南

Vue 3 中的 ref 完全指南 Vue 3 引入了 Composition API&#xff0c;其中 ref 是关键的一部分。ref 可以让我们更方便地在组件中定义响应式数据&#xff0c;在模板中使用 <script setup> 语法糖时尤为简洁。本文将详细讲解 Vue 3 中 ref 的概念、用途及常见用法&#xf…

通过Docker实现openGauss的快速容器化安装

容器安装 本章节主要介绍通过 Docker 安装 openGauss&#xff0c;方便 DevOps 用户的安装、配置和环境设置。 支持的架构和操作系统版本 x86-64 CentOS 7.6 ARM64 openEuler 20.03 LTS 配置准备 使用 buildDockerImage.sh 脚本构建 docker 镜像&#xff0c;buildDockerIm…

BERT框架详解

BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是由Google在2018年提出的一种自然语言处理&#xff08;NLP&#xff09;模型。BERT通过使用Transformer架构&#xff0c;实现了对文本的双向上下文理解&#xff0c;从而在多个NLP任务中取…

IntelliJ+SpringBoot项目实战(七)--在SpringBoot中整合Redis

Redis是项目开发中必不可少的缓存工具。所以在SpringBoot项目中必须整合Redis。下面是Redis整合的步骤&#xff1a; &#xff08;1&#xff09;因为目前使用openjweb-sys作为SpringBoot的启动应用&#xff0c;所以在openjweb-sys模块的application-dev.yml中增加配置参数&…

环境贴图选用方式

选择使用 RGBELoader 还是 TextureLoader 加载纹理&#xff0c;主要取决于你的纹理类型和用途。以下是两种加载器的使用场景&#xff1a; new RGBELoader()//设置纹理文件的路径.setPath(/textures/)//加载 HDR 环境贴图.load(royal_esplanade_1k.hdr, (texture) > {//Equir…

利用人工智能提升京东销售效率和用户体验的创新应用

摘要 随着技术的迅猛发展&#xff0c;人工智能&#xff08;AI&#xff09;正深刻地改变着电商行业的未来。作为中国领先的电商平台之一&#xff0c;京东积极运用AI技术&#xff0c;从购物推荐、会员分类到商品定价&#xff0c;全面提升销售效率和用户体验。本文将深入探讨京东…

D3的竞品有哪些,D3的优势,D3和echarts的对比

D3 的竞品 ECharts: 简介: ECharts 是由百度公司开发的一款开源的 JavaScript 图表库&#xff0c;提供了丰富的图表类型和高度定制化的配置选项。特点: 易于使用&#xff0c;文档详尽&#xff0c;社区活跃&#xff0c;支持多种图表类型&#xff08;如折线图、柱状图、饼图、散点…