Docker 基础命令是日常操作的核心,掌握这些命令能让我们快速管理镜像和容器。以下按「镜像管理」和「容器管理」分类整理,包含高频命令、关键选项、示例及注意事项,方便上手练习:
一、镜像(Image)管理命令
镜像作为容器的「模板」,是启动容器的前提,核心操作包括拉取、查看、删除、构建等。
1. 拉取镜像(从仓库下载)
命令:
docker pull [选项] 镜像名:标签
说明:从 Docker Hub(默认仓库)或私有仓库拉取镜像, 表示版本(如
标签 为最新版,不指定则默认
latest)。示例:
latest
# 拉取最新版 Nginx 镜像
docker pull nginx:latest
# 拉取指定版本的 Python 镜像(3.11)
docker pull python:3.11
2. 查看本地镜像
命令: 或
docker images
docker image ls
说明:列出本地所有镜像,包含镜像 ID、标签、大小等信息。示例:
docker images
# 输出格式:REPOSITORY(仓库名) TAG(标签) IMAGE ID(镜像ID) CREATED(创建时间) SIZE(大小)
筛选技巧:
# 只看 nginx 相关镜像
docker images nginx
# 只显示镜像 ID
docker images -q
3. 删除本地镜像
命令:
docker rmi [选项] 镜像ID/镜像名:标签
说明:删除本地镜像,需先删除依赖该镜像的所有容器(否则报错)。选项: 强制删除(即使有容器依赖,不推荐,建议先删容器)。示例:
-f
# 通过镜像 ID 删除(镜像 ID 可只写前3位,唯一即可)
docker rmi 1f9b
# 通过镜像名+标签删除
docker rmi nginx:latest
4. 构建自定义镜像(基于 Dockerfile)
命令:
docker build -t 镜像名:标签 构建上下文路径
说明:根据当前目录(或指定路径)的 构建镜像,
Dockerfile 指定镜像名称和标签。示例:
-t
# 在当前目录(.)构建一个名为 myapp、标签为 v1 的镜像
docker build -t myapp:v1 .
5. 镜像导出/导入(离线传输)
导出:
docker save -o 文件名.tar 镜像名:标签
示例:(将 nginx 镜像保存为本地 tar 文件)导入:
docker save -o nginx.tar nginx:latest
docker load -i 文件名.tar
示例:(从 tar 文件恢复镜像)
docker load -i nginx.tar
二、容器(Container)管理命令
容器是镜像的「运行实例」,核心操作包括启动、查看、操作、停止、删除等。
1. 启动容器(从镜像创建并运行)
命令:
docker run [选项] 镜像名 [容器内命令]
这是最核心的命令,关键选项必须掌握:
:交互式运行(
-it 保持输入打开,
-i 分配伪终端),适合进入容器操作(如
-t)。
bash:后台运行(守护进程模式),适合长期运行的服务(如 Nginx、MySQL)。
-d:指定容器名称(不指定则随机生成)。
--name 容器名:端口映射(让外部能访问容器内服务)。
-p 宿主机端口:容器内端口:挂载数据卷或目录(持久化数据)。
-v 宿主机路径:容器内路径
示例:
# 1. 交互式启动 Ubuntu 容器,进入 bash 终端(退出后容器停止)
docker run -it --name my-ubuntu ubuntu:22.04 /bin/bash
# 2. 后台启动 Nginx,映射宿主机 8080 端口到容器 80 端口(访问 localhost:8080 即可看到 Nginx 页面)
docker run -d --name my-nginx -p 8080:80 nginx:latest
# 3. 启动 MySQL,挂载数据卷(持久化数据),设置环境变量(root 密码)
docker run -d --name my-mysql -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
2. 查看容器
查看运行中容器:查看所有容器(包括已停止的):
docker ps只显示容器 ID:
docker ps -a(常用于批量操作,如删除所有容器)
docker ps -aq
3. 进入运行中的容器(执行命令)
命令:
docker exec [选项] 容器ID/名称 容器内命令
关键选项: 交互式进入(如进入
-it 终端)。示例:
bash
# 进入 my-nginx 容器的 bash 终端
docker exec -it my-nginx /bin/bash
# 在容器内执行单条命令(如查看 nginx 配置)
docker exec my-nginx cat /etc/nginx/nginx.conf
4. 停止/启动/重启容器
停止运行中的容器:(优雅停止,等待进程结束)强制停止:
docker stop 容器ID/名称(立即终止,类似 kill -9)启动已停止的容器:
docker kill 容器ID/名称重启容器:
docker start 容器ID/名称
docker restart 容器ID/名称
5. 查看容器日志(调试必备)
命令:
docker logs [选项] 容器ID/名称
选项: 实时跟踪日志(类似 tail -f);
-f 只看最后 N 行。示例:
--tail 行数
# 实时查看 my-nginx 的日志
docker logs -f my-nginx
# 查看 my-mysql 最后 100 行日志
docker logs --tail 100 my-mysql
6. 删除容器
命令:
docker rm [选项] 容器ID/名称
说明:只能删除已停止的容器,运行中的容器需先 或用
stop 强制删除。示例:
-f
# 删除已停止的 my-ubuntu 容器
docker rm my-ubuntu
# 强制删除运行中的 my-nginx 容器(不推荐,建议先 stop)
docker rm -f my-nginx
# 批量删除所有已停止的容器
docker rm $(docker ps -aq)
三、核心命令练习建议
从 开始,体验「拉取镜像→启动容器→自动退出」的流程。用
docker run hello-world 镜像练习:后台启动→访问宿主机端口→进入容器修改首页→查看日志→停止删除。用
nginx 镜像练习:交互式启动→在容器内安装软件→退出后重启容器查看状态(体会容器的临时性,未持久化的数据会丢失)。
ubuntu
通过以上命令的实操,能快速掌握 Docker 的基本操作逻辑,为后续学习 Dockerfile 和 Compose 打下基础。


