docker 的好处开箱即用,一次配置环境,后续永无后顾之忧;学习docker首先要明白镜像与容器的区别,该文是在了解这两者区别基础上给出了一些常用命令的操作
docker: Got permission denied while trying to connect to the Docker daemon socket at unix
groupadd docker
gpasswd -a oneUser docker #oneUser为需要授权的用户
newgrp docker
docker ps #test
从网站:https://hub.docker.com/
进行查找适合的基础镜像
#网站
https://hub.docker.com/search?page=1&ordering=last_updated&q=cuda10.0
#拉取镜像命令
docker pull rogerchen/cuda10.0-cudnn7-py3.6
docker images
结果如下:

首行标签为:镜像仓库名称,版本标签,镜像ID,创建日期,大小
docker rmi [OPTIONS] IMAGE [IMAGE...]
# OPTIONS:
# -f,--force:强制删除
删除镜像前需要删除掉所有该镜像运行的容器,参考删除容器命令
docker save:导出镜像为镜像文件
docker export:导出容器为镜像文件
save命令类似对一个加载的镜像进行另存为到本地。
如果对容器内容进行更改后需要用export命令把一个更改好的容器保存为一个镜像
save -o /mnt/hgfs/share/V1.tar 848be2582b0a
docker run -it 镜像ID /bin/bash
#运行样例
docker run -it 3b9cc4a571e7 /bin/bash
docker run -itd -v 本地目录:docker镜像目录 镜像ID /bin/bash
#运行样例
sudo docker run -itd -v /home/zhupenghui/MyWork/Work/BJGF:/share 81bcf752ac3d /bin/bash
注意:docker save的镜像包,需要docker load载入
docker load < 镜像名.tar.gz
docker load < perl.tar.gz 或 docker load -i perl.tar.gz
如果用load加载export的镜像包,则会出现下面错误
open **** no such file or directory
docker ps -a

docker ps

docker start CONTAINER [CONTAINER...]
docker stop CONTAINER [CONTAINER...]
docker restart CONTAINER [CONTAINER...]
docker exec -it containerID bash
进入容器修改里面内容前要启动容器
进入样例:
docker exec -it 8d1aff98b462 bash
docker save:导出镜像为镜像文件
docker export:导出容器为镜像文件
注意:一般容器文件修改后需要用export进行导出保存成镜像,不能使用save命令,save命令类似一个另存为镜像,镜像内容还是没有变化
注意,存储的时候文件名都使用小写英文字母,不要使用大写英文字母,否则加载的时候可能有异常,详见加载容器方法
Docker export -o 保存容器绝对路径 容器ID(CONTAINER ID)
【使用样例: docker export -o /mnt/hgfs/share/exportv1.0.tar 8e084eefc292】
docker export保存的容器,需要docker import载入
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
docker import deeplabv3_py36_v2_20220805.tar deeplab_py36:v1.0
注意,容器压缩包名用小写字母,大写字母会报如下错

加载成功界面

删除容器前要停止容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
# OPTIONS:
# -f:通过 SIGKILL 信号强制删除一个运行中的容器
# -l:移除容器间的网络连接,而非容器本身
# -v:删除与容器关联的卷
删除所有的ps -a 记录
docker rm `docker ps -a -q`