005_必会Docker命令汇总

1. 从仓库中查找镜像

一般通过docker search命令来查找官方仓库中的镜像,并利用docker pull命令来将它下载到本地。

image.png

可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建(OFFICIAL)、是否自动构建(AUTOMATED)。

2. 获取镜像

Docker Hub上有大量的高质量的镜像可以用,那么怎么获取这些镜像?

从Docker镜像仓库获取镜像的命令是docker pull

其命令格式为:

$ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

Docker镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。

默认地址是Docker Hub(docker.io)。

仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于Docker Hub,如果不给出用户名,则默认为library,也就是官方镜像。

image.png

镜像是由多层存储所构成,即分层存储,下载也是一层层的去下载,并非单一文件。下载过程中给出了每一层的ID的前12位。并且下载结束后,给出该镜像完整的sha256的摘要,以确保下载一致性。

3. 推送镜像

用户也可以在登录后通过docker push命令来将自己的镜像推送到Docker Hub。

以下命令中的username请替换为你的Docker账号用户名。

image.png

4.容器的启动

启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一种是将在终止状态(exited)的容器重新启动。很多时候用户都是随时删除和新创建容器的。

4.1以镜像为基础启动并运行容器

新建并启动容器采用docker run命令。

镜像有了之后,我们就能够以这个镜像为基础启动并运行一个容器。以ubuntu:18.04为例,如果我们打算启动里面的bash并且进行交互式操作的话,可以执行下面的命令。

image.png

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命令,直接将一个已经终止的容器启动运行。

image.png

通过命令docker ps -a查看容器的状态;

通过命令docker start xxxid 启动已经终止的容器;

5.容器的终止

通过命令docker stop xxxid终止一个运行中的容器;

image.png

6. 进入容器

使用docker run -d参数时或者使用docker start时,容器启动会进入后台;

有时我们需要进入到容器中操作,可以使用命令docker attach或者命令docker exec。

(1)docker attach命令

image.png

【备注】:如果从这个里面 exit,会导致容器的停止。

image.png

(2)docker exec命令

docker exec后边可以跟多个参数,这里主要说明 -i -t 参数。

当只用-i参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。

当-i -t参数一起使用时,则可以看到我们熟悉的Linux命令提示符。

image.png

【备注】:如果从这个里面中exit,不会导致容器的停止。

7.容器的退出

可以通过命令exit退出了这个容器。

image.png

8.查看镜像列表

查看已经下载下来的镜像,可以使用docker image ls命令。

image.png

列表包含了仓库名、标签、镜像 ID、创建时间以及所占用的空间。

镜像ID则是镜像的唯一标识,一个镜像可以对应多个标签。

9.删除镜像/容器

如果要删除本地的镜像,可以使用docker image rm命令,其格式为:

$ docker image rm [选项] <镜像1> [<镜像1> ...]

可以用镜像的完整ID来删除镜像,也可以使用短ID来删除镜像。

docker image ls 默认列出的就已经是短ID了,一般取前3个字符以上,只要足够区分于别的镜像就可以了。

也可以用镜像名,也就是 <仓库名>:<标签>,来删除镜像。

image.png

10.删除容器

删除容器命令:docker rm 容器id

image.png

11.容器的导入导出

(1)导出某个容器使用docker export命令:

docker export $container_id > 容器快照名

image.png

导出后在本地可以看到有一个centos.tar的容器快照。

(2)导入快照使用docker import命令:

cat centos.tar | docker import - my/centos:v888

image.png

导入容器快照作为镜像。

12.镜像的保存/载入

使用命令docker save将一个镜像导出为文件,

使用命令docker load将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,因为会保存镜像的所有历史记录。

image.png

参考:

https://yeasy.gitbook.io/docker_practice/data_management/bind-mounts

原文链接:
必会Docker命令汇总 - 知乎 (zhihu.com)
必会Docker命令汇总 (qq.com)

你可能感兴趣的:(005_必会Docker命令汇总)