2026 年 9 月
123456789101112131415161718192021222324252627282930
当天有发布文章
运行状态
CPU 占用2.6% · 4 核心
内存占用42.3% · 6.5 GB / 15.4 GB
磁盘占用12.5% · 110.8 GB / 889.7 GB
系统负载 0.4 / 0.59 / 0.71
持续运行 11 天 6 小时 4 分钟
操作系统 Debian 13
WEB 服务器 PHP 8.2.30
通信协议 HTTP/1.1
访客信息
您的 IP 216.73.217.68
浏览器 未知浏览器
您的设备 桌面设备
连接类型 HTTPS · GET
服务语言 未知
当前域名 moji.565882.xyz
站点统计
8文章数目
213评论数目
1301累计访问
396运行天数

Docker Run 常用命令完整笔记

ydmo 30 阅读 Docker 备忘录

Docker 常用命令完整笔记

Docker 启动类命令

# 启动 Docker
systemctl start docker

# 停止 Docker
systemctl stop docker

# 重启 Docker
systemctl restart docker

# Docker 开机启动
systemctl enable docker

# Docker 各命令帮助文档,如 run 指令
docker run --help
docker 具体指令 --help

Docker 镜像命令

镜像列表 docker images

查看主机上的镜像列表可以使用 docker images 来列出:

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    9c7a54a9a43c   3 weeks ago   13.3kB

各个选项说明:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签,版本号
  • IMAGE ID:镜像 ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

常用命令参数组合:

  • -a:列出本地所有镜像
  • -q:只显示镜像 ID
[root@localhost ~]# docker images -a -q
0ec8ab59a35f
9c7a54a9a43c

镜像查找 docker search

使用 docker search [镜像名称] 命令来查找镜像,如 redis:

docker search redis

各个选项说明:

  • NAME:镜像名称
  • DESCRIPTION:镜像描述
  • OFFICIAL:是否 Docker 官方发布
  • STARS:表示点赞、喜欢的数量
  • AUTOMATED:是否自动构建的

如果只想罗列出指定数量镜像,可以添加参数 --limit,如:

docker search redis --limit 5

拉取镜像 docker pull

使用 docker pull [镜像名称]:[TAG] 命令来拉取镜像,如果没有指定 TAG 版本默认 latest,如 redis:

# 拉取最新版 redis
docker pull redis

# 拉取指定版本 redis
docker pull redis:6.0.8

删除镜像 docker rmi

删除镜像示例:

docker rmi hello-world

可能会出现错误提示:

Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container 7edf17cbcfd2 is using its referenced image 9c7a54a9a43c

发现报错时,主要看两点:要么就是 container 实例存在,要么存在镜像依赖:

# 查看容器实例
docker ps -a

# 再删除容器
docker rm 容器实例ID

# 再执行删除镜像命令
docker rmi hello-world

引入参数 -f

  • -f:强制删除即使容器在执行,如果不加如果已经运行了容器则不能删除

常用的删除命令如下:

# 强制删除
docker rmi -f hello-world

# 删除多个镜像
docker rmi -f xx镜像id xx镜像id

# 删除全部
docker rmi -f $(docker images -qa)

查看占用信息 docker system df

[root@localhost ~]# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          1         0         117.1MB   117.1MB (100%)
Containers      2         0         0B        0B
Local Volumes   0         0         0B        0B
Build Cache     0         0         0B        0B

该命令列出了 Docker 使用磁盘的 4 种类型:

  • Images:所有镜像占用的空间,包括拉取的镜像、本地构建的镜像
  • Containers:运行中的容器所占用的空间(没运行就不占空间),其实就是每个容器读写层的空间
  • Local Volumes:本地数据卷的空间
  • Build Cache:镜像构建过程中,产生的缓存数据

容器创建新镜像 docker commit

很多时候我们对某一镜像进行了一些升级或改动,又希望可以复用,比如我在默认 ubuntu 镜像中安装并配置了 JDK、MySQL 等,我们可以提交该容器副本使之成为一个新的镜像。

语法:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

参数说明:

  • -a:提交的镜像作者
  • -c:使用 Dockerfile 指令来创建镜像
  • -m:提交时的说明文字
  • -p:在 commit 时,将容器暂停
# docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
docker commit -a "micro" -m "增加jdk mysql" 原ubuntu容器ID newubuntu:u1

# 使用查看镜像命令
docker images newubuntu:u1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
newubuntu           u1                  37af1236adef        15 seconds ago      329 MB

容器命令

启动容器 docker run

docker run 命令用于从镜像中创建一个新容器,该命令参数较多,可以使用 docker run --help 查看详细参数解释。

语法:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

列举常用的几个参数进行说明:

  • -t:在新容器内指定一个伪终端或终端,一般与 -i 一起使用,即:-it
  • -i:允许你对容器内的标准输入 (STDIN) 进行交互,一般与 -t 一起使用,即:-it
  • --name:为容器指定一个名称
  • -d:后台运行容器,并返回容器 ID
  • -v:宿主机目录:容器中的目录:挂载目录,将容器中的目录映射到宿主机中
  • -p:指定端口映射,格式为:主机(宿主)端口:容器端口
# 前台运行模式
docker run -it redis

# 后台运行模式
docker run -d redis

查看容器 docker ps

语法:

docker ps [OPTIONS]

参数说明:

  • -a:列出当前所有正在运行的容器+历史上运行过的
  • -l:显示最近创建的容器
  • -n:显示最近 n 个创建的容器
  • -q:静默模式,只显示容器编号

已停止容器再启动 docker start

针对已经停止的容器实例,比如 STATUS 为 Exited 的容器:

CONTAINER ID   IMAGE          COMMAND                  CREATED             STATUS                          PORTS     NAMES
9ac3579e18bb   redis          "docker-entrypoint.s…"   About a minute ago  Exited (0) 12 seconds ago                 goofy_almeida

可以使用 docker start 容器ID 的命令重新启动:

docker start 9ac3579e18bb

重启容器 docker restart

docker restart 容器ID或容器名称

示例:

docker restart 9ac3579e18bb

停止容器 docker stop

docker stop 容器ID或容器名称

示例:

docker stop 9ac3579e18bb

强制停止容器 docker kill

docker kill 容器ID或容器名称

示例:

docker kill 9ac3579e18bb

删除停止容器 docker rm

# 普通删除
docker rm 9ac3579e18bb

# 强制删除
docker rm -f 9ac3579e18bb

# 删除全部
docker rm -f $(docker ps -a -q)

# 删除所有已停止容器
docker container prune

容器的进入 docker exec 和 docker attach

前台启动和后台启动的区别在于:前台启动只要 exit 退出指令容器也随之停止了;而后台启动使用 docker exec 进入终端 exit 是不会停止容器的。

第一种:
docker attach 直接进入容器启动命令的终端,不会启动新的进程,只要 exit 退出指令容器也随之停止了。

docker attach 9ac3579e18bb

第二种:(推荐)
docker exec 是在容器中打开新的终端,并且可以启动新的进程,exit 退出指令不会导致容器停止。

docker exec -it 9ac3579e18bb /bin/bash

容器导入导出 docker import 和 docker export

很多时候我们在生产环境下是无法连接外网的,所以有时候需要用到容器的导入和导出。

  • 导出 docker export
    将容器导出为 redis-bak.tar
docker export 9ac3579e18bb > redis-bak.tar
  • 导入 docker import
    将容器导入生产镜像,镜像名称为 bak/redis 版本号为 v1.0.0
docker import redis-bak.tar bak/redis:v1.0.0

关注公众号获取最新资源

存储小窝.png

暂无评论

发表评论