【深度学习环境】Docker

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
<none>                                      <none>                              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 配置

https://blog.csdn.net/qq_21043585/article/details/120316301
修改docker容器但是端口号没有变,再次连接可能会出现以下错误:
ssh remote host identification has changed [closed]
解决方法:
在client 段重新生成,windows下

ssh-keygen -R [ip]:port

2.7 自动保存

1> 自动保存脚本

# 保存镜像
echo psswd | sudo -S docker commit --author "xx" --message "daily auto save" container_name  save image name 

# 删除悬浮镜像
sudo docker image prune -f

2> 启动日常保存

https://blog.csdn.net/qq_44691720/article/details/122467315
nano:

  • 保存: ctrl + 0 --> Enter
  • 推出 :ctrl + x
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值