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对容器可见

  大概就是这么多!以后查阅起来就方便多了。

原文地址:https://www.cnblogs.com/chester-cs/p/13962751.html