docker常用集锦

Posted AI蜗牛之家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker常用集锦相关的知识,希望对你有一定的参考价值。

文章目录

1.关于docker

docker是什么?为什么要使用docker?docker的基本原理又是什么?常用命令又有哪些?
这些相关概念已经很多大佬整理出来了,具体参见:

2.常用命令


关于命令的参数说明,详见:docker manual
Notice :
下面介绍到的命令中containerID如果不特殊说明,一般都可以用containeName来代替

2.1.docker安装

2.1.1.成功验证

$ docker version
$ docker info # 或者

2.1.2.启动

Docker 是服务器----客户端架构。命令行运行docker命令的时候,需要本机有 Docker 服务。如果这项服务没有启动,可以用下面的命令启动(官方文档)。

$ sudo service docker start   #service 命令的用法
$ sudo systemctl start docker  #systemctl 命令的用法

2.2. image镜像

Docker 把应用程序及其依赖,打包在 image 文件(静态镜像)里面。只有通过这个文件,才能生成 Docker 容器(动态实例)。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

2.2.1.将 image 文件从仓库抓取到本地

$ docker image pull library/hello-world

上面代码中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。
由于 Docker 官方提供的 image 文件,都放在library组里面,所以它的是默认组,可以省略。因此,上面的命令可以写成下面这样。

$ docker image pull hello-world

下载完成后,该镜像被默认保存到 /var/lib/docker 目录下。

2.2.2.镜像查看&删除

$ docker image ls # 列出本机的所有 image 文件。
$ docker images #作用同上
$ docker image rm [imageName]  # 删除 image 文件
$ docker rmi [imageName] #同上

2.3.docker容器

2.3.1.运行

docker container run命令会从 image 文件,生成一个正在运行的容器实例。
注意,docker container run命令具有自动抓取 image 文件的功能。如果发现本地没有指定的 image 文件,就会从仓库自动抓取。因此,前面的docker image pull命令并不是必需的步骤。

$ docker container run hello-world  #将下载好的镜像实例化容器

注意:运行时候可以设置相关运行参数,例如如下样例:
docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash
其中:

  • -p参数:容器的 3000 端口映射到本机的 8000 端口。
  • -it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
  • koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
  • /bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。

查看容器列表

$ docker ps #查看所有正在运行容器
$ docker container ls #同上
$ docker ps -a #查看所有容器,包括未运行的

进入正在运行容器
docker container exec命令用于进入一个正在运行的 docker 容器。如果docker run命令运行容器的时候,没有使用-it参数(-it参数作用如上样例所述),就要用这个命令进入容器。一旦进入了容器,就可以在容器的 Shell 执行命令了。

$ docker container exec -it [containerID] /bin/bash

2.3.2.容器运行日志

docker container logs命令用来查看 docker 容器的输出,即容器里面 Shell 的标准输出。如果docker run命令运行容器的时候,没有使用-it参数,就要用这个命令查看输出。

$ docker container logs [containerID]

2.3.3.停止

有些容器不会自动终止,因为提供的是服务。比如,安装运行 Ubuntu 的 image,就可以在命令行体验 Ubuntu 系统。
对于那些不会自动终止的容器,必须使用docker container kill 命令手动终止。

$ docker container kill [containID]
$ docker container stop [containerID]

前面的docker container kill命令终止容器运行,相当于向容器里面的主进程发出 SIGKILL 信号。而docker container stop命令也是用来终止容器运行,相当于向容器里面的主进程发出 SIGTERM 信号,然后过一段时间再发出 SIGKILL 信号。这两个信号的差别是,应用程序收到 SIGTERM 信号以后,可以自行进行收尾清理工作,但也可以不理会这个信号。如果收到 SIGKILL 信号,就会强行立即终止,那些正在进行中的操作会全部丢失。

2.3.4.容器重启

前面的docker container run命令是新建容器,每运行一次,就会新建一个容器。同样的命令运行两次,就会生成两个一模一样的容器文件。如果希望重复使用容器,就要使用docker container start命令,它用来启动已经生成、已经停止运行的容器文件。

docker container start [containerID]  #docker container start  

2.3.5.容器实例文件

image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。

$ docker container ls # 列出本机正在运行的容器
$ docker container ls --all # 列出本机所有容器,包括终止运行的容器

$ docker container rm [containerID] #终止运行的容器文件,依然会占据硬盘空间,可以使用docker container rm命令删除。

2.3.6.其他常用命令

拷贝
docker container cp命令用于从正在运行的 Docker 容器里面,将文件拷贝到本机。下面是拷贝到当前目录的写法。

$ docker container cp [containID]:[/path/to/file] .

3.docker镜像制作

以上是关于docker常用集锦的主要内容,如果未能解决你的问题,请参考以下文章

Docker 问题集锦(30) - 两种 Docker 镜像打包的常用方式

Docker 清理命令集锦

《Docker 问题集锦》系列-总览

docker命令集锦

《Docker 问题集锦》系列-总览

《Docker 问题集锦》系列-总览