Docker实用手册
参考资料:
https://www.runoob.com/docker/docker-tutorial.html
https://blog.csdn.net/xcc_2269861428/article/details/103820419
https://www.jianshu.com/p/b92d4b845ed6
读者一定早已知道docker的功用,写这个随笔的原因是每次创建docker的时候因为记不住命令都要到处查,所以下面汇总一下。文章会涵盖容器,镜像的相关知识,以精简实用为目标。也会涵盖具体的命令(存储器挂载,端口映射等)。
1. 镜像 images
docker images # 查看现有的镜像 docker pull XXXX # 拉取一个镜像 e.g.: docker pull nvidia/cuda:11.0-cudnn8-devel-ubuntu18.04 ## 注意:docker最方便的一点就是有人帮你做好了镜像,一般我们会到dockerhub上寻找images的tag,或者使用docker search命令 docker rmi 镜像名 # 删除一个镜像,后面跟镜像名或id docker commit -m="提交原因" -a="作者" 容器ID或名字 镜像名:tag # 将一个容器制作成images. ## e.g.: docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 docker save -o 文件名.tar 镜像名或ID # 将一个镜像保存到本地,e.g.:docker save -o rocketmq.tar rocketmq
2. 容器 container
docker ps [-a] # 查看正在运行的容器,如果加-a则显示停止的容器 docker start 容器名或ID # 启动一个停止的容器 docker stop 容器名或ID #停止一个正在运行的容器 docker run -it 镜像名或ID 命令 # 启动一个容器 e.g.:$ docker run -it ubuntu /bin/bash ## 注意个命令是docker的核心,给出的例子的意思就是以交互式的终端-i -t来运行镜像ubuntu, ## 且运行的命令是shell bash,运行后你就进入到容器里了,后面还会介绍更多的参数。 ## 如果-itd则默认不会进入容器,容器会在后台运行 docker rm 容器名或容器ID # 删除一个停止了的容器
掌握了容器和镜像的命令,docker掌握了大半,下面介绍磁盘映射和端口映射的命令。
3. 磁盘映射
## 磁盘映射,原理即把宿主机上的一个目录挂载到docker容器中! ## 注意如果宿主机上该文件夹不存在,会创建并挂载一个空的文件夹。 ## 这个功能十分实用,因为你实现了宿主机和docker的文件同步! ## 一旦docker崩溃,不至于损失数据 docker -v 宿主机目录:容器目录 # e.g.: docker run -it -v /data/mydata:/workspace ubuntu /bin/bash # 进入到容器后,你会发现/workspace文件夹,这就是把宿主机的/data/mydata文件夹挂载上去啦!
4. 端口映射
## 端口映射,很多时候你想开放宿主机的端口,让它们能够被docker所用, ## 此时我们就需要端口映射 ## 端口映射有很多种类型,我只介绍最常见的类型 docker -p 宿主机端口:docker容器端口 [-p 宿主机端口:docker容器端口] ## e.g.: docker -p 45011:22 -p 45012:8080
5. tips
- 在创建docker的时候可能会想加上--restart=always参数让容器自动重启
- 在创建docker的时候可能会想加上--gpus all让宿主机gpu对容器可见
大概就是这么多!以后查阅起来就方便多了。