千家信息网

Docker 镜像及容器操作命令介绍

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本文主要讲解安装docker后的基础使用方法以及 命令的介绍,主要是docker镜像操作及容器操作 命令。当然,docker的相关命令非常多,可以使用docker help命令查看对应目录以及相关提示
千家信息网最后更新 2026年11月04日Docker 镜像及容器操作命令介绍
本文主要讲解安装docker后的基础使用方法以及 命令的介绍,主要是docker镜像操作及容器操作 命令。
当然,docker的相关命令非常多,可以使用docker help命令查看对应目录以及相关提示命令。

Docker镜像操作命令
[root@docker ~]# which docker/usr/bin/docker
1、镜像搜索:docker search

命令描述:从Docker Hub中搜索并且显示你所需要的镜像

命令格式:docker search [options] term

Options:-f, --filter filter Filter output based on conditions provided--format string Pretty-print search using a Go template--limit int Max number of search results (default 25)--no-trunc Don't truncate output

-s: -s 100 #表示收藏数大于100的镜像

实例操作演示:

[root@docker ~]# docker search nginxNAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATEDnginx                              Official build of Nginx.                        12968               [OK]                jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1772                                    [OK]richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…   764                                     [OK]...//省略部分内容[root@docker ~]# docker search -s 100 nginxFlag --stars has been deprecated, use --filter=stars=3 insteadNAME                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATEDnginx                     Official build of Nginx.                        12968               [OK]                jwilder/nginx-proxy       Automated Nginx reverse proxy for docker con…   1772                                    [OK]richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable of…   764                                     [OK]linuxserver/nginx         An Nginx container, brought to you by LinuxS…   104

简要说明:

  • NAME:镜像名称
  • DESCRIPTION:该镜像的描述信息
  • STARS:星级,越高则说明使用者,喜欢的人越多
  • OFFICIAL:是否为官方发布
  • AUTOMATED:自动创建

该命令作为检索命令,下面我们需要获取你检索后选择的每个镜像

2、镜像获取:docker pull

命令描述:从镜像仓库中拉取(形象的说法嘛)或者更新指定镜像

命令格式:docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Options:
  -a, --all-tags                Download all tagged images in the repository      --disable-content-trust   Skip image verification (default true)  -q, --quiet                   Suppress verbose output

OPTIONS说明:

  • -a :拉取所有 tagged 镜像
  • --disable-content-trust :忽略镜像的校验,默认开启

实例演示:拉取nginx镜像为例

[root@docker ~]# docker pull nginxUsing default tag: latestlatest: Pulling from library/nginxc499e6d256d6: Pull complete74cda408e262: Pull completeffadbd415ab7: Pull completeDigest: sha256:282530fcb7cd19f3848c7b611043f82ae4be3781cb00105a1d593d7e6286b596Status: Downloaded newer image for nginx:latestdocker.io/library/nginx:lates

这样我们就拉取了一个nginx镜像,那么我们怎么查看呢?

3、镜像信息查看:docker images

命令描述:列出本地镜像

命令格式:docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS说明:

  • -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
  • --digests :显示镜像的摘要信息;
  • -f :显示满足条件的镜像;
  • --format :指定返回值的模板文件;
  • --no-trunc :显示完整的镜像信息;
  • -q :只显示镜像ID。

实例演示:

[root@docker ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               latest              ed21b7a8aee9        6 days ago          127MB#等价于下面的命令[root@docker ~]# docker image ls REPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               latest              ed21b7a8aee9        6 days ago          127MB

简要说明:

  • REPOSITORY:仓库名称
  • TAG:标签
  • IMAGE ID:镜像id
  • CREATE:创建状态(按照时间)
  • SIZE:文件大小

PS:补充使用docker inspect IMAGE ID可以查看镜像的详细信息。

下面看看这个TAG的作用

4、镜像标签操作:docker tag

命令描述:标记本地镜像,将其归入某一仓库

命令格式:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

实例演示:

[root@docker ~]# docker tag nginx:latest nginx:lokott[root@docker ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               latest              ed21b7a8aee9        6 days ago          127MBnginx               lokott              ed21b7a8aee9        6 days ago          127MB

假设我们创建的时候发现有错误,或者在不需要的时候怎么删除镜像呢?继续来看哈!

5、删除镜像:docker rmi

命令描述:删除本地一个或多个镜像

命令格式:docker rmi [OPTIONS] IMAGE [IMAGE...]

Options:

  -f, --force      Force removal of the image      --no-prune   Do not delete untagged parents

实例演示:

[root@docker ~]# docker rmi nginx:lokott Untagged: nginx:lokott[root@docker ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               latest              ed21b7a8aee9        6 days ago          127MB[root@docker ~]# docker rmi nginx:latest Untagged: nginx:latestUntagged: nginx@sha256:282530fcb7cd19f3848c7b611043f82ae4be3781cb00105a1d593d7e6286b596Deleted: sha256:ed21b7a8aee9cc677df6d7f38a641fa0e3c05f65592c592c9f28c42b3dd89291Deleted: sha256:8a305f371a6c3c445a1dfc500c1364743868a269ab8cdaf95902692e82168352Deleted: sha256:d079ef06ec1f10a8050887365f9a940b39547ba6bcc46b16a463e740984f3223Deleted: sha256:c3a984abe8a88059915bb6c7a1d249fd1ccc16d931334ac8816540b0eb686b45

删除打标签的镜像其实本质就是一个脱去标签的操作,与删除原镜像文件是不一样的。

尽量不要使用删除ID号的方式删除镜像,并且注意尽量删除依赖该镜像的所有容器后再删除这个镜像。

那么我们需要考虑我们拉取了镜像之后怎么存出镜像呢?这就需要使用下面的命令来实现了。

6、存出镜像:docker save

所谓存出,我们设想这样的场景应用:当需要将一台机器上的镜像迁移到另一台机器上的时候,需要将镜像保存成本地文件,这个过程就叫做存出镜像。

你可以简单理解为将镜像打成压缩包方便使用

命令描述:将指定镜像保存成 tar 归档文件

命令格式:docker save [OPTIONS] IMAGE [IMAGE...]

OPTIONS 说明:

  • -o :输出到的文件。

实例演示:

[root@docker ~]# docker save -o /opt/nginx nginx:latest[root@docker ~]# ll /opt/总用量 127560drwx--x--x. 4 root root        28 4月   6 09:45 containerd-rw-------. 1 root root 130618880 4月   6 14:04 nginxdrwxr-xr-x. 2 root root         6 10月 31 2018 rh

那么有存出,就必定有对应的载入操作,我们将存出的文件从本地复制一份到其他机器上是,我们需要使用这个镜像,可以通过下面的命令实现载入镜像

7、载入镜像:docker load

命令描述:载入镜像文件

命令格式:docker load [OPTIONS]

Options:

  -i, --input string   Read from tar archive file, instead of STDIN  -q, --quiet          Suppress the load output

实例演示:

[root@docker ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE#一:[root@docker ~]# docker load < /opt/nginx c3a984abe8a8: Loading layer  72.48MB/72.48MB99134ec7f247: Loading layer  58.11MB/58.11MBd37eecb5b769: Loading layer  3.584kB/3.584kBLoaded image: nginx:latest[root@docker ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               latest              ed21b7a8aee9        6 days ago          127MB#二:从tar存档文件中读取,而不是从STDIN中读取[root@docker ~]# docker load --input /opt/nginx #或者使用-i代替--input也是一样的c3a984abe8a8: Loading layer  72.48MB/72.48MB99134ec7f247: Loading layer  58.11MB/58.11MBd37eecb5b769: Loading layer  3.584kB/3.584kBLoaded image: nginx:latest
8、上传镜像:docker login (不做细说以及演示)

命令描述:将自己本地的镜像制作好后上传到仓库中

命令格式:docker login

结合docker push NAME[:TAG]使用

Docker容器操作命令

关于Docker容器的操作笔者换一种风格来介绍,但是还是会通过实例来方便大家理解。

首先,容器简单而言,是基于镜像的一个运行实例,是独立运行的一个或一组应用以及其所必需的运行环境,包括文件系统、系统类库、 shell环境等。镜像是只读模板,而容器会给这个只读模板一个额外的可写层。

接下来就容器来讲述具体的操作命令。

1、容器创建与启动

容器创建就是将镜像加载到容器的过程,因为是docker是轻量级的应用工具,用户可以随时进行创建或者删除。新建的容器默认处于停止状态,不允许任何程序,需要在其中发起一个进程来启动容器,这个进程就是这个容器的唯一进程,因此在该进程结束的时候,容器也会完全停止。停止的容器可以重新启动并且保留原来的修改。

容器的创建

容器创建命令:docker create

命令格式:docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

常用的options:

  • -i:让容器的输入保持打开
  • -t:让docker分配一个伪终端

实例演示:

[root@docker ~]# docker create -it nginx:latest /bin/basha1a2e8468189b146b0215971cf76947987d8fc3f42c58e77371e8d48afb030d1[root@docker ~]# docker ps -aCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMESa1a2e8468189        nginx:latest        "/bin/bash"         7 seconds ago       Created                                 gallant_feynman

相关说明:

  • CONTAINER ID:容器ID号
  • IMAGE:使用的镜像
  • COMMAND :
  • CREATED:显示操作时间
  • STATUS:显示状态,created表示已创建
  • PORTS:端口 信息和使用的连接类型(tcp/udp)
  • NAMES:自动分配容器的名称

容器的启动

命令:docker start

命令格式:docker start [OPTIONS] CONTAINER [CONTAINER...]

实例演示:

[root@docker ~]# docker start a1a2e8468189a1a2e8468189[root@docker ~]# docker ps -aCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMESa1a2e8468189        nginx:latest        "/bin/bash"         10 minutes ago      Up 2 seconds        80/tcp              gallant_feynman

启动后,发现端口信息出来了,并且显示是up状态,表示容器已经是启动状态了。

下面看另一种启动容器的方式:

[root@docker ~]# docker run CentOS /usr/bin/bash -c ls /Unable to find image 'centos:latest' locallylatest: Pulling from library/centos8a29a15cefae: Pull complete Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700Status: Downloaded newer image for centos:latestbindevetchomeliblib64lost+foundmediamntoptprocrootrunsbinsrvsystmpusrvar[root@docker ~]# docker ps -aCONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                          PORTS               NAMES4835176a7d8e        centos              "/usr/bin/bash -c ls…"   About a minute ago   Exited (0) About a minute ago                       affectionate_keldysha1a2e8468189        nginx:latest        "/bin/bash"              28 minutes ago       Up 17 minutes                   80/tcp              gallant_feynman

-c参数表示的是需要执行的命令,这种方式适用于一次执行,Exited (0) 表示正常正确退出,及终止运行。

docker run的命令执行流程为:先从本地查找镜像(本地没有image不表示容器不依赖image),如果没有会从公共仓库中下载;再通过镜像创建并且启动一个容器;分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;从宿主机配置的网桥接口中桥接一个虚拟接口到容器中;分配一个地址池中的IP地址给容器;执行用户指定的应用程序;执行之后容器被终止(后台运行除外)。

后台运行:run 后面加参数-d即可。

2、容器运行与终止

想要在运行中的容器停下来,使用docker stop 命令

命令格式:docker stop [OPTIONS] CONTAINER [CONTAINER...]

实例演示:

[root@docker ~]# docker stop a1a2e8468189a1a2e8468189[root@docker ~]# docker ps -aCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES4835176a7d8e        centos              "/usr/bin/bash -c ls…"   9 minutes ago       Exited (0) 9 minutes ago                       affectionate_keldysha1a2e8468189        nginx:latest        "/bin/bash"              36 minutes ago      Exited (0) 3 seconds ago                       gallant_feynman
3、容器的进入

想要进入容器进行相应操作时可以使用docker exec命令进入运行着的容器。

命令格式:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

[root@docker ~]# docker ps -a #检查容器是否是运行状态(up)CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES4835176a7d8e        centos              "/usr/bin/bash -c ls…"   12 minutes ago      Exited (0) 12 minutes ago                       affectionate_keldysha1a2e8468189        nginx:latest        "/bin/bash"              38 minutes ago      Up 4 seconds                80/tcp              gallant_feynman[root@docker ~]# docker exec -it a1a2e8468189 /bin/bash #进入伪终端root@a1a2e8468189:/# lsbin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  varroot@a1a2e8468189:/# exit #使用exit退出伪终端exit[root@docker ~]#
4、容器的导出和导入

类似镜像,用户也可以将容器从一台机器迁移到另一台机器。在迁移过程中,首先需要将已经创建好的容器导出为文件,使用docker export实现,无论这个容器是处于运行状态还是停止状态均可以导出。导出之后可将导出文件传输到其他机器,通过对应的导入命令实现迁移过程。

容器导出命令:docker export

命令格式:docker export [OPTIONS] CONTAINER

实例演示:一个运行状态一个停止状态,都演示

[root@docker ~]# docker ps -aCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES4835176a7d8e        centos              "/usr/bin/bash -c ls…"   21 minutes ago      Exited (0) 21 minutes ago                       affectionate_keldysha1a2e8468189        nginx:latest        "/bin/bash"              48 minutes ago      Up 9 minutes                80/tcp              gallant_feynman

运行中的容器导出:

[root@docker ~]# docker export a1a2e8468189 > nginx_contain[root@docker ~]# lsanaconda-ks.cfg  initial-setup-ks.cfg  nginx  nginx_contain  公共  模板  视频  图片  文档  下载  音乐  桌面[root@docker ~]# ll总用量 253448-rw-------. 1 root root      1954 4月   6 08:49 anaconda-ks.cfg-rw-r--r--. 1 root root      2002 4月   6 08:50 initial-setup-ks.cfg-rw-------. 1 root root 130618880 4月   6 14:04 nginx #镜像存出的文件-rw-r--r--. 1 root root 128899072 4月   6 16:04 nginx_contain #容器导出文件 二者权限不同

终止的容器导出:

[root@docker ~]# docker export 4835176a7d8e > centos_contain[root@docker ~]# lsanaconda-ks.cfg  initial-setup-ks.cfg  nginx_contain  模板  图片  下载  桌面centos_contain   nginx                 公共           视频  文档  音乐

导出的文件从本地拷贝到远程服务器,之后使用docker import命令导入,成为镜像

容器导入命令:docker import

命令格式:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

实例演示:

[root@docker ~]# docker import centos_contain centos_new:54sha256:f32b5354c81de72a71af50468d09803aa9e62e08741e3cd3e84c10c9a74e2204[root@docker ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEcentos_new          54                  f32b5354c81d        10 seconds ago      0Bnginx               latest              ed21b7a8aee9        6 days ago          127MBcentos              latest              470671670cac        2 months ago        237MB

或者使用cat 文件名 | docker import - 镜像名称:tag 执行命令也可以的

5、容器的删除

容器的删除:docker rm

命令格式:docker rm [OPTIONS] CONTAINER [CONTAINER...]

实例演示:

[root@docker ~]# docker ps -aCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES4835176a7d8e        centos              "/usr/bin/bash -c ls…"   31 minutes ago      Exited (0) 31 minutes ago                       affectionate_keldysha1a2e8468189        nginx:latest        "/bin/bash"              58 minutes ago      Up 19 minutes               80/tcp              gallant_feynm

删除已终止的容器:

[root@docker ~]# docker rm 4835176a7d8e4835176a7d8e[root@docker ~]# docker ps -aCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMESa1a2e8468189        nginx:latest        "/bin/bash"         59 minutes ago      Up 20 minutes       80/tcp              gallant_feynman

删除成功了!

删除还在运行中的容器:

[root@docker ~]# docker rm a1a2e8468189 Error response from daemon: You cannot remove a running container a1a2e8468189b146b0215971cf76947987d8fc3f42c58e77371e8d48afb030d1. Stop the container before attempting removal or force remove

发现Error了,不能这样删除运行状态中的容器,提示你的操作是尝试删除容器前停止容器的运行或者强制删除

推荐前者,后者只需要如下操作,但尽量不要随意使用哈!

[root@docker ~]# docker rm a1a2e8468189 -fa1a2e8468189[root@docker ~]# docker ps -aCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

友情提示:docker默认的存储目录在/var/lib/docker目录下,docker的镜像、容器、日志等内容全部都存储在此,当然也可以单独使用大容量的分区来存储这些内容,并且一般选择建立在LVM逻辑卷,从而方便后续扩容操作。

总结

本文讲述的是docker基础命令(镜像和容器)的操作,通过实实在在的实际案例方便理解。对于docker的介绍与安装可以查阅笔者的前一篇文章。

感谢阅读!

原文来自: https://www.linuxprobe.com/docker-help.html

镜像 容器 命令 文件 运行 实例 格式 演示 状态 信息 机器 仓库 模板 名称 时候 标签 过程 进程 分配 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 伟宏互联网科技 科技互联网项目 金诺互联网科技 互联网与科技金融数据 碳银互联网科技 未来的互联网科技 互联网前沿科技 老年人脱离互联网科技的作文 互联网系的金融科技公司 湖南诚度互联网科技有限公司 贵州叶脉互联网科技有限公司所属行业 互联网科技扶贫时间 本届互联网博览会上的黑科技 佛山市拉法互联网科技有限公司 晋城互联网科技 互联网公司高科技产品 产业互联网科技服务公司 山东大美朱楼互联网科技有限公司 九思连强互联网电子科技有限公司 互联网金融运营模式中的金融科技 中关村互联网 科技集团 致聘互联网科技 玖二柒互联网科技公司待遇 顶级互联网科技成果有哪些 移动互联网科技股 崇明区互联网教育科技售后服务 互联网科技产业特征 信承诺互联网科技有限公司 昆明中奇联合互联网科技 北京军民互联网科技公司
0