1. 从仓库中查找镜像
一般通过docker search命令来查找官方仓库中的镜像,并利用docker pull命令来将它下载到本地。
可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建(OFFICIAL)、是否自动构建(AUTOMATED)。
2. 获取镜像
Docker Hub上有大量的高质量的镜像可以用,那么怎么获取这些镜像?
从Docker镜像仓库获取镜像的命令是docker pull。
其命令格式为:
$ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
Docker镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。
默认地址是Docker Hub(docker.io)。
仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于Docker Hub,如果不给出用户名,则默认为library,也就是官方镜像。
镜像是由多层存储所构成,即分层存储,下载也是一层层的去下载,并非单一文件。下载过程中给出了每一层的ID的前12位。并且下载结束后,给出该镜像完整的sha256的摘要,以确保下载一致性。
3. 推送镜像
用户也可以在登录后通过docker push命令来将自己的镜像推送到Docker Hub。
以下命令中的username请替换为你的Docker账号用户名。
4.容器的启动
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一种是将在终止状态(exited)的容器重新启动。很多时候用户都是随时删除和新创建容器的。
4.1以镜像为基础启动并运行容器
新建并启动容器采用docker run命令。
镜像有了之后,我们就能够以这个镜像为基础启动并运行一个容器。以ubuntu:18.04为例,如果我们打算启动里面的bash并且进行交互式操作的话,可以执行下面的命令。
docker run就是运行容器的命令。
-it:这是两个参数,一个是-i交互式操作,一个是-t终端。
ubuntu:16.04:这是指用ubuntu:16.04镜像为基础来启动容器。
bash:放在镜像名后的是命令,这里我们希望有个交互式Shell,因此用的是bash。
【备注】:
当利用docker run来创建容器时,Docker在后台运行的标准操作包括:
(1)检查本地是否存在指定的镜像,不存在就从registry下载;
(2)利用镜像创建并启动一个容器;
(3)分配一个文件系统,并在只读的镜像层外面挂载一层可读写层;
(4)从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去;
(5)从地址池配置一个ip地址给容器;
(6)执行用户指定的应用程序;
(7)执行完毕后容器被终止;
4.2 启动已经终止的容器
可以利用docker start命令,直接将一个已经终止的容器启动运行。
通过命令docker ps -a查看容器的状态;
通过命令docker start xxxid 启动已经终止的容器;
5.容器的终止
通过命令docker stop xxxid终止一个运行中的容器;
6. 进入容器
使用docker run -d参数时或者使用docker start时,容器启动会进入后台;
有时我们需要进入到容器中操作,可以使用命令docker attach或者命令docker exec。
(1)docker attach命令
【备注】:如果从这个里面 exit,会导致容器的停止。
(2)docker exec命令
docker exec后边可以跟多个参数,这里主要说明 -i -t 参数。
当只用-i参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。
当-i -t参数一起使用时,则可以看到我们熟悉的Linux命令提示符。
【备注】:如果从这个里面中exit,不会导致容器的停止。
7.容器的退出
可以通过命令exit退出了这个容器。
8.查看镜像列表
查看已经下载下来的镜像,可以使用docker image ls命令。
列表包含了仓库名、标签、镜像 ID、创建时间以及所占用的空间。
镜像ID则是镜像的唯一标识,一个镜像可以对应多个标签。
9.删除镜像/容器
如果要删除本地的镜像,可以使用docker image rm命令,其格式为:
$ docker image rm [选项] <镜像1> [<镜像1> ...]
可以用镜像的完整ID来删除镜像,也可以使用短ID来删除镜像。
docker image ls 默认列出的就已经是短ID了,一般取前3个字符以上,只要足够区分于别的镜像就可以了。
也可以用镜像名,也就是 <仓库名>:<标签>,来删除镜像。
10.删除容器
删除容器命令:docker rm 容器id
11.容器的导入导出
(1)导出某个容器使用docker export命令:
docker export $container_id > 容器快照名
导出后在本地可以看到有一个centos.tar的容器快照。
(2)导入快照使用docker import命令:
cat centos.tar | docker import - my/centos:v888
导入容器快照作为镜像。
12.镜像的保存/载入
使用命令docker save将一个镜像导出为文件,
使用命令docker load将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,因为会保存镜像的所有历史记录。
参考:
https://yeasy.gitbook.io/docker_practice/data_management/bind-mounts
原文链接:
必会Docker命令汇总 - 知乎 (zhihu.com)
必会Docker命令汇总 (qq.com)