Docker使用笔记

Jayson
2025-12-20 / / 26 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年12月20日,已超过32天没有更新,若内容或图片失效,请留言反馈。

Docker 使用笔记

Docker 作为主流的容器化技术,其命令行操作是开发者必备技能。本文整理了 Docker 中高频且核心的命令,涵盖镜像管理、容器操作等核心场景,并附带详细说明和实战示例,帮助新手快速上手,老手高效查阅。

1. 帮助命令

docker version          # 显示 Docker 版本信息
docker info             # 显示系统级别的信息,包括镜像和容器的数量
docker COMMAND --help   # 显示指定命令的帮助信息

2. 镜像命令

2.1 docker images:查看本地镜像

列出本地存储的所有镜像:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        7 months ago        13.3kB

字段说明

字段说明
REPOSITORY镜像的仓库源
TAG镜像的标签
IMAGE ID镜像的唯一标识符
CREATED镜像的创建时间
SIZE镜像的大小

常用参数

  • --all, -a:列出所有镜像(包括中间层镜像)
  • --quiet, -q:只显示镜像 ID

2.2 docker search:搜索镜像

从 Docker Hub 搜索镜像:

docker search 镜像名称

常用参数

  • --filter=STARS=3000:只显示 Star 数大于 3000 的镜像

2.3 docker pull:下载镜像

从仓库拉取镜像到本地:

docker pull 镜像名称[:TAG]        # 默认 TAG 是 latest
docker pull 源地址/镜像名称[:TAG] # 指定源地址

2.4 docker rmi:删除镜像

从本地删除一个或多个镜像:

使用方法

删除单个镜像
docker rmi -f 镜像ID
删除多个镜像
docker rmi -f 镜像ID1 镜像ID2
删除所有镜像
docker rmi -f $(docker images -aq)
停止所有容器
docker stop $(docker ps -a -q)

3. 容器命令

创建容器的前提是本地已有对应的镜像。本教程以 CentOS 镜像为例演示容器相关操作。

3.1 准备工作:拉取 CentOS 镜像

docker pull centos

3.2 docker run:创建并启动容器

创建并启动新容器的基本语法:

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

常用参数

参数说明
--name="容器名"为容器指定名称
-d后台运行容器(守护态)
-it交互式运行容器,通常与 /bin/bash 结合使用
-p 主机端口:容器端口端口映射
-P随机端口映射

示例:启动并进入 CentOS 容器

# 以交互模式启动 CentOS 容器
docker run -it centos /bin/bash

# 在容器内执行命令
[root@容器ID /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

# 退出容器
# exit:完全退出容器,容器会停止
# Ctrl+P+Q:容器不停止,后台运行

3.3 docker ps:查看容器

列出容器信息:

常用参数

参数说明
(无参数)列出正在运行的容器
-a列出所有容器(包括已停止)
-l显示最近创建的容器
-n=N显示最近创建的 N 个容器
-q静默模式,只显示容器 ID

示例

# 查看所有容器
docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
77969f5dcbf9        centos              "/bin/bash"         5 minutes ago       Exited (0) 5 minutes ago                       xenodochial_bose
74e82b7980e7        centos              "/bin/bash"         16 minutes ago      Exited (0) 6 minutes ago                       silly_cori

# 只查看容器 ID(便于批量操作)
docker ps -aq

3.4 docker rm:删除容器

删除一个或多个容器:

# 删除指定容器
docker rm 容器ID

# 强制删除正在运行的容器
docker rm -f 容器ID

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

# 删除所有容器
docker rm -f $(docker ps -aq)

3.5 容器状态控制命令

对已创建的容器进行启停控制:

docker start 容器ID    # 启动已停止的容器
docker stop 容器ID     # 正常停止容器(发送 SIGTERM 信号)
docker restart 容器ID  # 重启容器
docker kill 容器ID     # 强制停止容器(发送 SIGKILL 信号)

4. 容器高级操作

4.1 后台运行容器

docker run -d centos

# 注意事项:
# Docker 容器后台运行必须有一个前台进程
# 如果没有前台进程执行,容器认为空闲会自动停止

4.2 查看容器日志

docker logs [OPTIONS] 容器ID

# 常用参数
-f, --follow         # 跟踪日志输出
--tail NUM           # 显示最后 NUM 行日志
-t, --timestamps     # 显示时间戳

# 示例
docker logs -tf --tail 10 容器ID

4.3 查看容器内进程

docker top 容器ID

# 示例输出
UID                 PID                 PPID                C                   STIME               TTY     
root                28498               28482               0                   19:38               ?

4.4 查看容器详细信息

docker inspect 容器ID

# 返回容器的详细信息,包括:
# - 容器基本信息
# - 配置信息
# - 网络设置
# - 数据卷挂载情况等

4.5 进入运行中的容器

两种方式进入运行中的容器:

# 方法一:开启新终端进入容器(推荐)
docker exec -it 容器ID /bin/bash

# 方法二:连接到容器当前的终端
docker attach 容器ID

# 两者的区别:
# docker exec:在容器中打开新的终端,不影响原终端
# docker attach:进入容器正在运行的终端,可能阻塞原终端

4.6 容器与宿主机间文件拷贝

# 从容器拷贝文件到宿主机
docker cp 容器ID:容器内路径 宿主机路径

# 从宿主机拷贝文件到容器
docker cp 宿主机路径 容器ID:容器内路径

# 示例
docker cp 容器ID:/home/test.txt ./

5. 总结

以上是 Docker 最常用的命令集合,涵盖了日常开发运维中的大部分场景。熟练掌握这些命令可以帮助你更好地管理和使用 Docker 容器。

0