Docker常用命令

Docker常用命令

帮助命令

  1. docker version ## 显示Docker版本信息
  2. docker info ## 显示Docker系统信息,包括镜像数、容器数、正在运行的镜像数、暂停的镜像数、停止的镜像数等
  3. docker –help ## 显示docker指令的信息
  4. docker 指令 –help ## 显示具体某一个docker指令的可选项docker 指令 –help ## 显示具体某一个docker指令的可选项

file

镜像命令

docker images

  1. docker images ## 显示你本地主机上(买的服务器或安装的Linux虚拟机)所有下载的镜像信息

file

执行该指令之后,信息显示如上图所示,对每个标签的解释如下:

  1. REPOSITORY ## 镜像的仓库源(也就是镜像名)
  2. TAG ## 镜像的标签(也就是镜像的版本,如果不指定,则默认为lastest,也就是最新版)
  3. IMAGE ID ## 镜像的ID(同一个镜像的不同版本,拥有不同的镜像ID)
  4. CREATED ## 镜像的创建时间
  5. SIZE ## 镜像的大小

通过docker images –help可以看到该指令的一些可选项,现对几个常用的可选项做一解释:

file

  1. -a ## 列出本地所有镜像
  2. -q ## 只列出镜像的ID
  3. --digests ## 显示镜像的摘要信息
  1. docker search 某个镜像的名称 ## 搜索镜像,例如:docker search mysql

file

  1. NAME ## 镜像名
  2. DESCRIPTION ## 镜像描述
  3. STARS ## 收藏数(类似于GitHub上的STARS,STARS越多,表示越受欢迎,下载次数越多)

如果我们只想搜索STARS不小于5000的镜像呢?我们可以采用一些过滤条件。

通过docker search –help指令来查看一些可选参数。从图中可以看出,我们可以采用-f或–filter filter指令来进行过滤。

file

  1. 以下四种方式均可
  2. docker search –filter=stars=5000 mysql
  3. docker search –filter stars=5000 mysql
  4. docker search -f=stars=5000 mysql
  5. docker search -f stars=5000 mysql

file

docker pull

  1. docker pull mysql ## 下载镜像(这里如果不指定TAG,默认就是lastest最新版)

file

  1. docker pull mysql:5.7 需要注意的是,这个镜像的版本一定得是DockerHub上有的版本。不然会下载

docker rmi

首先使用docker rmi –help来看一下这个命令都有哪些可选项。如下图所示:

file

可以看到有-f参数

  1. 删除镜像
  2. docker rmi -f 镜像id ## 删除单个镜像
  3. docker rmi -f 镜像名:tag 镜像名:tag ## 删除多个
  4. docker rmi -f $(docker images -qa) ## 删除全部

容器命令

有镜像才能创建容器,我们这里使用centos的镜像来测试,就是虚拟一个centos

新建容器并启动(docker run)

docker run命令就是docker createdocker start命令的组合

  1. docker run [OPTIONS] 镜像名 [COMMAND][ARGS…]

  2. 常用可选参数以及解释

  3. --name ## 给容器取一个名字

  4. --rm ## 容器退出后,自动删除容器

  5. -i ## 以交互模式运行容器,通常与-t同时使用,即-it

  6. -t ## 分配一个虚拟的终端,在docker中启动bash就会有提示符,通常与-i通知使用,即-it

  7. -d ## 在后台运行容器。等同于进入容器后按Ctrl+P+Q。所以可以docker attach回去。在后台运行的容器,只能通过网络和它交互。

  8. -p ## 设置端口转发。-p:hostport:containerport

测试如下:

使用centos进行交互模式启动容器,在容器内执行/bin/bash命令 file

由上图可以看出,地址已经变成容器内部了。

列出所有运行的容器(docker ps)

  1. docker ps [OPTIONS]

我们首先使用docker ps –help指令来看一下都有哪些可选参数:

file

  1. -a ## 列出所有正在运行的容器 + 历史运行过的容器
  2. -l ## 列出最近创建的一个容器以及该容器的信息
  3. -n int ## 列出最近n个创建的容器以及容器的信息
  4. -q ## 列出容器的编号
  5. -s ## 列出容器的大小

容器退出(exit、Ctrl+P+Q)

  1. exit ## 容器停止并退出
  2. Ctrl + P + Q ## 容器不停止退出,也就是进入后台模式,等同于docker run的参数 -d

删除容器(docker rm)

  1. docker rm 容器id ## 删除指定容器
  2. docker rm -f $(docker ps -aq) ## 删除所有容器(常用)
  3. docker ps -aq xargs docker -rm ## 删除所有容器(不常用)

常用其他命令

后台启动容器 (-d)

  1. docker run -d 容器名 ## 后台启动容器
  2. 问题: 使用docker ps 查看,发现容器已经退出了!
  3. 解释:Docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令,就会自动退出。
  4. 比如,你运行了nginx服务,但是docker前台没有运行应用,这种情况下,容器启动后,会立即自杀,因为他觉得没有程序了,所以最好的情况是,将你的应用使用前台进程的方式运行启动。

查看日志(docker logs)

  1. docker logs 容器id

docker logs有以下可选参数:

file

  1. -t ## 显示时间戳
  2. -f ## 打印最新的日志
  3. --tail 数字 ## 数字—显示多少条

查看容器中运行的进程信息(docker top)

  1. docker top 容器id

file

查看容器 / 镜像的元数据(docker inspect)

  1. docker inspect 容器id

file

进入正在运行的容器

docker exec

这个命令是用已经运行的容器执行命令。需要注意的是,如果容器关闭后再次运行,那么用exec命令执行的命令是不会自己再次执行的

  1. docker exec 容器id

file

  1. -d ## 让命令在后台执行
  2. -e ## 设置环境变量
  3. -it ## 使用交互模式进入
  4. -u -w ## 分别设置命令运行的用户和work directory。也就是如果要改变用户或者工作目录,就是用-u或-w

docker attach

attach命令把一个后台运行的容器搞到前台来,这样就可以看到他们的输出,并且使用输入了。

  1. docker attach 容器id

attach命令的可选参数如下: file

  1. --no-stdin ## 关闭输入
  2. --sig-proxy ## 信号转发,默认开启,这样DMD进程就可以收到你的信号了

区别

exec是在容器中打开新的终端,并且可以启动新的进程

attach是直接进入容器启动命令的终端,不会启动新的进程

从容器内拷贝文件到主机上(docker cp)

  1. docker cp 容器id:容器内路径 目的主机路径

  2. 例如:

  3. docker cp f261f17bb39d:/home/f1 /home

本文作者:jujimeizuo
本文地址https://blog.jujimeizuo.cn/2021/09/14/dockerml/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!