提示:博客里docker的常用指令暂时只在window10中使用
docker镜像库
# 查看所以镜像、容器的详细大小
docker system df -v
docker images
# image_name 镜像名
docker pull image_name
# eg:docker pull gotoeasy/ubuntu-desktop
# 推荐的ubuntu桌面版镜像 【密码123456】
# tag 镜像版本号
docker push image_name:tag
流程繁杂,具体参考
# -p --端口映射(6080:web版vnc,浏览器直接访问 5900:客户端访问)
# -d --后台运行
# –name=container_name --设容器名
# imagename:tag --镜像
# cpu版本
docker run -it --shm-size 8g --name container_name -p 5900:5900 -p 22:22 -d image_name:tag
# gpu版本
docker run -it --shm-size 8g --gpus all --name container_name -p 5900:5900 -p 22:22 -d image_name:tag
# eg(创建深度学习ubuntu容器)
# docker run -it --gpus all --name deepLearning_ubuntu18 -p 5900:5900 -p 22:22 -d gotoeasy/ubuntu-desktop:latest
# image_id 镜像id
# 使用镜像ID删除时会先删除所有指向该镜像的标签,再删除该镜像文件本身
docker rmi image_id
# eg: docker rmi 1a89db715923
# 镜像存在依赖于它的容器时,不允许删除,需要强制删除
docker rmi -f image_name:tag
# eg: docker rmi -f yangyu/ubuntu18.04_for_deeplearning:v1.0
# 功能更接近于为指定镜像添加快捷
docker tag image_id new_image_name: new_tag
# eg: docker cc53add7e80b kasmweb2/desktop:develop-rolling2
# 或者
docker tag old_image_name: old_tag new_image_name: new_tag
# eg: docker tag kasmweb/desktop:develop-rolling kasmweb2/desktop:develop-rolling2
# 镜像ID一模一样,说明是同一个镜像,只是别名不同而已,可以任意删除其中一个别名(标签)
docker rmi old_tag new_image_name: new_tag
# 或
docker rmi new_tag new_image_name: new_tag
# 但是绝对不能用image_id 删除即: docker rmi image_id
docker build -t image_namedockerfilepath
# 保存镜像包
# filename.tar 镜像包名
# path/ 存放目录
# image_name镜像名
# path/filename.tar必须都是小写
docker save -o path/filename.tar image_name
docker save image_name> path/filename.tar
#eg:docker save -o E:\dockerimage\ubuntu18.04_for_deeplearning.tar yangyu/ubuntu18.04_for_deeplearning
# 载入镜像包
# 载入过程不能镜像名,镜像名即为filename
docker load --input filename.tar
docker load < filename.tar
docker ps
docker ps -a
# container_name 容器名
docker stop container_name
docker stop container_id
# eg: docker stop deepLearning_ubuntu18
docker start container_name
docker start container_id
# eg: docker start deepLearning_ubuntu18
docker rm container_name
docker rm container_id
# eg: docker rm deepLearning_ubuntu18
docker attach container_name
# imagename必须是全小写
docker commit container_id image_name:tag
# eg:docker commit 0b66c3cb1aaf yangyu/ubuntu18.04_for_deeplearning:v1.0
# 保存容器
docker export container_id > filename.tar
filename.tar是导出容器的文件名,默认地址在当前执行命令行的文件夹内。
docker import filename.tar > image_name:v1.0
docker import用来载入容器包,恢复的是镜像,可以指定新名称即imagename。
10,查看容器进程
docker top containername
docker inspect container_name
docker inspect -f'{{ .NetworkSettings.IPAddress }}'container_name
docker inspect container_name
docker rename container_name container_new_name
# eg:docker rename deepLearning_ubuntu18 PytorchFor3D
docker cp container_id:/filepath hostfilepath
container_id是容器id(通过docker ps -a获取); /filepath是文件在docker容器的路径;hostfilepath是文件放置在主机的路径
docker cp hostfilepath containerid:/filepath
docker指令参考
docker中文文档
docker应用和数据迁移参考:Docker应用和数据默认位置设置/更改部分