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 centos3.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 -aq3.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 容器ID4.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 容器。