一 docker相关命令
-
查看docker镜像
sudo docker images
-
查看所有的容器命令
sudo docker ps -a
-
创建docker
sudo docker run --privileged --gpus all -it --name MegatronDeepSpeed -v ./megatron:/workspace/megatron -v ./dataset:/workspace/dataset -v ./checkpoints:/workspace/checkpoints -v /home/pcljgy/clash:/workspace/clash nvcr.io/nvidia/pytorch:23.08-py3
常常使用以下命令
sudo docker run --gpus all -it --name SD_jgy --runtime=nvidia --shm-size=16g --ulimit memlock=-1 --privileged --net host -v /mnt/guoyong/SD_DockerShared/:/workspace megatronjgy:latest /sbin/init
使用--privileged
参数,container的root将具备Linux物理机上真正的root权限;如果不加该参数,则container的用户只是物理机上的普通用户。
/sbin/init
:容器启动时运行/sbin/init
,通常用于启动一个完整的系统环境。
两者有什么区别呢?root用户可以看到Host的很多设备,例如GPU设备。
如果不加该参数,运行容器可能出现以下错误:
ERROR: The NVIDIA Driver is present, but CUDA failed to initialize. GPU functionality will not be available.
这是因为作为普通用户,无法看到GPU等网络设备
https://blog.csdn.net/wangxuelei036/article/details/107457712 -
执行docker
`sudo docker exec -it 96694feb8d35 /bin/bash -
停止docker
docker stop <docker_id>
-
停止的容器通过restart重启
sudo docker restart "docker_container_id"
-
删除docker
尽管docker正在运行,不过也可以直接删除
docker rm -f $(docker ps -aq)
二 将docker打包成镜像
Docker 打包容器成镜像
要将一个容器打包成镜像,可以通过 Docker 命令行使用 docker commit 命令来完成。docker commit 命令会创建一个新的镜像,该镜像是基于指定容器当前状态的快照。
以下是一个简单的步骤来将容器打包成镜像:
确保容器正在运行:确保要打包成镜像的容器正在运行状态。
获取容器的 ID:使用 docker ps 命令获取容器的 ID。
docker ps
输出会显示运行中的容器列表,其中包括容器的 ID。
使用 docker commit 命令创建镜像:使用以下命令将容器打包成镜像。
docker commit <container_id> <new_image_name>
<container_id>
:是要打包成镜像的容器的 ID。
<new_image_name>
:是新镜像的名称。
例如:
docker commit 1a2b3c4d5e6f my-new-image:latest
验证新镜像:使用 docker images
命令验证新创建的镜像是否存在。
docker images
这会列出所有本地镜像,你应该能够在列表中看到刚刚创建的新镜像。
请注意,使用 docker commit 命令创建镜像时,它会基于当前容器的状态创建快照,但可能不会包含完整的构建历史记录或 Dockerfile 中的所有步骤。通常最佳做法是使用 Dockerfile 来构建镜像,这样可以更好地管理镜像的版本控制和构建过程。
原文链接:https://blog.csdn.net/Go_ahead_forever/article/details/134980597
https://www.runoob.com/docker/docker-container-usage.html
# 【docker】Ubuntu服务器docker搭建与使用
Linux教程
文章评论