Docker容器使用过程

创建容器

在创建docker容器的时候,使用命令: 

docker run --gpus all -itd --name "torch_dev_czy" -v $HOME:$HOME -v /home/public:/home/public -v /data:/data --ipc=host --shm-size=4gb --rm nvcr.io/nvidia/pytorch:24.04-py3 

其中的 -rm 参数会让你的容器在停止时自动删除,因此需要去除。(万一你不小心主动停止或是服务器因某些原因关机,你容器内所有东西就没了,所以早发现早解决!)

打包镜像

如果不想重新按照之前的一大堆命令配置你的容器环境,可以把现有容器打成镜像,然后随时使用(打包后的镜像会不会在容器停止时自动删除?这个还不知道)。

首先查看当前存在的所有容器:

docker ps -a

CONTAINER ID为6c58e2a27ae5就是我的容器。

接下来用commit命令保存镜像:

# commit参数保存镜像, -a " 提交人 " -m " 提交内容 "

# 命令格式:
docker  commit  -a  -m  现有容器ID     保存的名称
# 使用:
docker commit -a "czy" -m "torch_dev_czy" 6c58e2a27ae5 torch_dev_czy

内容如下:

[caoziyi@veen10502626580248560562 ~]$ docker commit -a "czy" -m "torch_dev_czy" 6c58e2a27ae5 torch_dev_czy
sha256:ab08ceaaef7e7f721a0776c605279f8931559723d662dcb347fe50e8369daea1

使用如下命令查看镜像:

docker images

内容如下:

[caoziyi@veen10502626580248560562 ~]$ docker images
REPOSITORY                                      TAG                             IMAGE ID       CREATED          SIZE
torch_dev_czy                                   latest                          ab08ceaaef7e   11 minutes ago   37.8GB
malio_comfyui                                   v1                              bd93dd424e9f   2 days ago       16.3GB
gy_pytorch_lora_scripts_image                   latest                          b0f3ddb79cad   4 days ago       33.5GB
<none>                                          <none>                          6633f1241a80   4 days ago       35.4GB
liuhongyu/dz_lora_train                         v1.0                            7fb4d525ca5b   4 days ago       32.7GB
<none>                                          <none>                          26a0cd96e3ed   4 days ago       16.3GB
pytorch/pytorch                                 2.3.0-cuda12.1-cudnn8-runtime   639acf27b78e   4 weeks ago      7.71GB
nvcr.io/nvidia/pytorch                          24.04-py3                       3f0b23af1f4f   7 weeks ago      20GB
docker.elastic.co/kibana/kibana                 8.6.0                           e903232de67c   16 months ago    718MB
docker.elastic.co/elasticsearch/elasticsearch   8.6.0                           6053d49e4509   16 months ago    1.29GB
lspvic/tensorboard-notebook                     latest                          812de6f3b320   4 years ago      5.27GB

第一个torch_dev_czy就是刚刚打包的镜像。接着把镜像打成tar包,方便之后使用:

#命令格式:
docker save -o  要打镜像包的名称  镜像
#使用:
docker save -o torch_dev_czy.tar.gz torch_dev_czy

结果如下:

[caoziyi@veen10502626580248560562 ~]$ docker save -o torch_dev_czy.tar.gz torch_dev_czy
[caoziyi@veen10502626580248560562 ~]$ ll
total 37962088
-rw-rw-r-- 1 caoziyi caoziyi   576830621 May 13 14:17 Anaconda3-2020.07-Linux-x86_64.sh
-rw------- 1 caoziyi caoziyi 38296335360 May 27 11:48 torch_dev_czy.tar.gz

镜像到此就打包完成了。

镜像使用

当我们要使用自己或者别人打包好的镜像时,命令如下:

docker load -i 镜像名

导入之后再查看:

docker images

选择该镜像启动:

docker run --gpus all -itd --name "torch_dev_czy" -v $HOME:$HOME -v /home/public:/home/public -v /data:/data --ipc=host --shm-size=4gb torch_dev_czy

参数:

-d:后台运行

-p:端口映射

-v:挂载主机目录到容器内部,用于数据持久化。

-e:设置容器内的环境变量。

--name:为容器指定一个自定义的名称。

-i:启动一个交互式容器。

-t:为容器分配一个伪终端。

--restart:指定容器退出时的重启策略。

--network:指定容器所属的网络模式。

--link:链接另一个容器。

<think>好的,用户想要查找关于Docker容器使用的教程,特别是针对初学者的指南。我需要根据用户提供的引用内容来整理相关信息,并生成一个结构清晰的回答。首先,看看用户提供的引用内容。 引用[1]提到了修复Docker容器漏洞,这可能和安全相关,但用户现在需要的是使用教程,所以这个引用可能不太相关,不过可以暂时留着备用。引用[2]详细说明了Docker的端口映射,特别是如何将容器内部的端口映射到主机,这应该是使用Docker运行服务时的关键步骤,需要重点强调。引用[3]是关于volume映射的操作,具体是通过docker cp命令复制文件,这可能涉及数据持久化,这也是Docker使用中的重要部分,应该包含在教程里。引用[4]和[5]分别是关于Kubernetes和AWS EC2的指南,可能和Docker相关,但用户明确需要Docker容器的教程,所以这两个可能暂时不需要,但需要确认是否有相关内容。 用户可能需要从基础开始,比如安装、运行容器、端口映射、数据卷管理、常用命令等。根据引用[2]中的端口映射部分,应该详细解释docker run -p参数的用法。引用[3]中的volume映射也是一个重点,数据持久化对容器来说很重要,避免数据丢失。另外,用户可能还需要一些基本的命令,比如启动、停止容器,查看日志等。 需要确保回答结构清晰,分步骤讲解。可能的结构是:安装Docker -> 运行第一个容器 -> 端口映射 -> 数据卷管理 -> 常用命令 -> 学习资源。每个部分结合引用内容中的例子,比如引用[2]中的端口映射命令,引用[3]中的volume操作。 还要注意用户提到“beginner guide”,所以需要从基础开始,避免太深入的高级话题。可能需要包括一些常见问题,比如如何访问容器内的服务,如何处理数据持久化,如何查看运行中的容器等。 另外,用户提供的引用中有提到“docker run -p <host port>:<container port>”,这个需要详细说明,可能给出具体的例子,比如运行nginx并将80端口映射到主机的8080端口。数据卷部分可以结合docker cp命令,或者使用-v参数进行目录挂载。 需要检查是否有遗漏的重要点,比如Dockerfile的编写,构建镜像,但用户可能暂时只需要容器使用的基础知识,所以可能不需要深入Dockerfile,除非教程中包含这部分。但作为初学指南,可能还是需要简单提及如何获取镜像,运行容器等基本操作。 最后,生成相关问题,可能需要包括如何安装Docker,优化容器性能,安全实践,多容器管理,Dockerfile使用等,结合引用中的内容,比如引用[1]的安全问题,引用[4]的K8s可能作为扩展。 现在需要组织这些内容,确保每个步骤都有对应的引用支持,并且语言简洁明了,适合初学者。</think>### Docker 容器使用入门指南 #### 1. **安装 Docker** - 访问[Docker 官网](https://www.docker.com/)下载对应操作系统的安装包。 - 安装完成后,在终端输入 `docker --version` 验证是否成功[^1]。 #### 2. **运行第一个容器** - 使用 `docker run` 命令启动容器。例如,运行一个 Nginx 服务: ```bash docker run -d --name my-nginx nginx ``` - `-d` 表示后台运行,`--name` 指定容器名称[^2]。 #### 3. **端口映射:访问容器服务** - 容器默认隔离网络,需通过**端口映射**暴露服务。例如将主机的 8080 端口映射到容器的 80 端口: ```bash docker run -d -p 8080:80 --name web-server nginx ``` - 访问 `http://localhost:8080` 即可看到 Nginx 默认页面。 #### 4. **数据卷管理:持久化容器数据** - 使用 `-v` 参数挂载主机目录到容器,避免数据丢失: ```bash docker run -d -v /host/data:/container/data --name data-container ubuntu ``` - 复制文件到容器(或反向)可使用 `docker cp`: ```bash docker cp /mnt/local-file.txt my-container:/path/in/container [^3] ``` #### 5. **常用命令** - 查看运行中的容器:`docker ps` - 停止容器:`docker stop <容器名>` - 查看容器日志:`docker logs <容器名>` - 进入容器终端:`docker exec -it <容器名> /bin/bash` #### 6. **学习资源扩展** - 官方文档:[Docker Docs](https://docs.docker.com/) - 进阶主题:Kubernetes 容器编排(参考[K8s 入门指南][^4]) --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值