docker常用命令

2024-01-25 18:39:23
/
0 点赞
/
179 阅读
2024-01-25

拉取镜像

docker pull nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
1

启动带GPU镜像

docker run -d \
-p 20022:22 \
-p 20080:80 \
--restart=always \
-v /data/dockerdir:/data  \
--gpus all \
--shm-size 40G \
--name cuda \
-it nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04 bash

1
2
3
4
5
6
7
8
9
10

提交镜像

基于ubuntu22.04系统、RTX4090、nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04

vim、git、openssh-server、miniconda

docker commit 66b01b4790bb mrdabin/cuda:11.8.0-cudnn8-conda-ubuntu22.04
1

删除镜像

docker rmi e13403e78ddf
1

导出导出镜像

方式一 save 导出

导出

docker save imageID > mrdabin-cuda-11.8-cudnn8-conda-22.04.tar
1

导出多个镜像到文件

docker save -o image.tar 镜像1 镜像2
1

导入

docker load < image.tar
1

方式二 export 导出

export 导出的镜像再导入时会丢失镜像所有的历史记录和元数据信息(即仅保存容器当时的快照状态),所以无法进行回滚操作。

而 save 保存(load 加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)

导出

docker export 容器id > image.tar
1

导入

docker import image.tar
1

save和export导出的不同

文件大小不同

export < save 
1

对镜像重命名

docker import 可以为镜像指定新名称
docker load 不能对载入的镜像重命名
1
2

同时将多个镜像打包到一个文件中

docker export 不支持
docker save 支持
1
2

是否包含镜像历史

export 导出的镜像再导入时会丢失镜像所有的历史记录和元数据信息(即仅保存容器当时的快照状态),所以无法进行回滚操作。

而 save 保存(load 加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)

docker tag

# docker tag d9af72e702a7 mrdabin/ss928:ubuntu18.04
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
1
2

docker配置

修改容器dns

修改docker配置文件,添加dns项

vim /etc/docker/daemon.json

{
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    },
    "dns": ["223.5.5.5", "114.114.114.114", "8.8.8.8"]
}

1
2
3
4
5
6
7
8
9
10

重启docker

systemctl restart docker
1

参考

https://blog.csdn.net/tangsiqi130/article/details/131765077
https://blog.51cto.com/u_16175498/9263058
https://www.php.cn/faq/510420.html

版权属于:

那棵树看起来生气了

本文链接:

https://dengyb.com/archives/28.html(转载时请注明本文出处及文章链接)