【深度学习环境】Docker
创始人
2024-05-27 09:11:46

1. Docker 相关安装配置

1.1 docker 安装

参考:https://www.runoob.com/docker/ubuntu-docker-install.html

1.2 nvidia-docker 安装

参考:https://zhuanlan.zhihu.com/p/37519492

1.3 代理加速

参考:https://yeasy.gitbook.io/docker_practice/install/mirror

2. Docker 使用

2.1 获取镜像

在Docker Hub 上有大量高质量的镜像可以用。例如搜索本地安装令人无比头疼的深度学习框架,Caffe 可以使用搜索可用的镜像:

sudo docker search caffe

在这里插入图片描述

  • NAME 镜像名称, 可以使用 docker pull [NAME] 拉取
  • DESCRIPTION 描述
  • STARS
  • OFFICIAL 是否是官方镜像
  • AUTOMATED

2.2 镜像管理

2.2.1 列出本地镜像

sudo docker image ls 

在这里插入图片描述

  • REPOSITORY 仓库名
  • TAG 标签
  • IMAGE ID 镜像ID
  • CREATED 创建时间
  • SIZE 所占用空间

镜像的体积总和并非实际硬盘消耗,由于Docker镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。可以使用以下命令查看镜像、容器、数据卷所占用的空间。

sudo docker system df 

2.2.2 悬浮镜像

REPOSITORY                                  TAG                                 IMAGE ID       CREATED         SIZE
                                                                    a69d525d695d   2 minutes ago   5.09GB

悬浮镜像或因为升级、重名等原因导致的。悬浮镜像一般来说失去了存在的价值,可以随意删除。删除命令

docker image prune 删除悬浮镜像

2.2.3 列出特定的镜像

docker image ls 还支持强大的过滤参数 --filter, 或者简写为 -f 。比如我们希望看到在 mongo:3.2之后建立的镜像,可以使用

docker image ls -f since=mongo:3.2

默认情况下,docker image ls 会输出一个完整的表格,但是我们并非所有时候都会需要这些内容。比如,刚才删除镜像时,我们需要利用 docker image ls 把所有的虚浮镜像的ID列出来,然后交给 docker image rm 命令删除。这个时候就可以用 -q参数。

2.3 删除本地镜像

  • 使用 镜像名删除
docker image rm redis:alpine
  • 使用长ID删除
docker image rm 0584b3d2cf6d
  • 配合 docker image ls 删除
    比如: 我们需要删除所有仓库名为redis的镜像
docker image rm $(docker image ls -q redis)

2.4 commit

镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础。当这些容器无法直接满足需求时,我们就需要定制这些容器。当我们运行一个容器的时候,我们做的任何文件修改都会被记录于容器存储层里。而Docker 提供了一个 docker commit 命令,可以将容器的存储层保存下来成为镜像。换句话说,就是在原有镜像的基础上,再叠加上容器的存储层,并构成新的镜像。
docker commit 的语法格式:

docker commit [选项] <容器ID或者容器名> [<仓库名> [: <标签>]]

我们可以用下面的命令将容器保存为镜像:

docker commit \
--author "xxx" \
--message "Message" \
webserver \
nginx:v2

提交后:

$ docker image ls nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               v2                  07e334659748        9 seconds ago       181.5 MB
nginx               1.11                05a60462f8ba        12 days ago         181.5 MB
nginx               latest              e43d811ce2f4        4 weeks ago         181.5 MB

我们还可以使用 docker history 来具体查看镜像内的历史记录

2.5 启动docker

sudo docker run --name anomalibc  \ 
-it -d --gpus all --shm-size="16g" \ 
-p 13022:22 -v /data/ljl/:/work_space anomalib:v1.1 
  • –name 设置容器名字

当出现名字重复的时候,可以使用

sudo docker ps -a 

列出所有容器,然后删除对应的已经停止,但是仍然有记录的容器。

sudo docker rm [容器ID]

2.6 ssh 修改

1> 修改ubuntu 源

相关内容

热门资讯

demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...