Docker 常用命令速查
Docker 核心操作:镜像管理 → 容器运行 → 数据持久化 → 网络通信 → 资源清理
1. 镜像操作
镜像相当于容器的「模板」,所有容器都从镜像启动。
# 拉取镜像
docker pull nginx
# 查看本地镜像列表
docker images
# 删除本地镜像
docker rmi nginx
# 从 Dockerfile 构建镜像(-t 命名:标签)
docker build -t myapp:1.0 .
# 给镜像打标签(准备推送)
docker tag myapp:1.0 myrepo/myapp:1.0
# 推送镜像到远程仓库
docker push myrepo/myapp:1.0
2. 容器操作
容器是镜像的运行实例,也是最常用的部分。
启动容器
docker run -d --name mynginx -p 8080:80 nginx
| 参数 | 含义 |
|---|---|
-d |
后台运行(detach) |
--name |
指定容器名称 |
-p 8080:80 |
主机 8080 端口 → 容器 80 端口 |
-e KEY=VALUE |
设置环境变量 |
-v /host:/container |
挂载目录/数据卷 |
--restart always |
容器退出时自动重启 |
--network |
指定网络 |
生命周期管理
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器(含已停止)
docker stop mynginx # 停止容器
docker start mynginx # 启动已停止的容器
docker restart mynginx # 重启容器
docker rm mynginx # 删除容器(需先停止)
docker rm -f mynginx # 强制删除(运行中也可删)
docker update ... # 更新容器启动配置
调试 & 查看信息
docker exec -it mynginx bash # 进入容器交互式终端
docker logs mynginx # 查看容器日志
docker logs -f mynginx # 实时跟踪日志
docker inspect mynginx # 查看容器详细配置(网络、挂载等)
3. 数据卷与持久化
容器删除后内部数据会丢失,通过挂载实现数据持久化。
数据卷(Volume)
Docker 管理的存储,推荐方式。
docker volume create mydata # 创建数据卷
docker volume ls # 查看所有卷
docker volume rm mydata # 删除卷
# 将容器内 /data 挂载到数据卷 mydata(容器删除后数据仍保留)
docker run -d -v mydata:/data nginx
绑定挂载(Bind Mount)
直接挂载宿主机目录。
# 主机目录 /host/path → 容器内 /data
docker run -d -v /host/path:/data nginx
4. 网络
自定义网络让多个容器通过容器名互相通信。
docker network ls # 查看所有网络
docker network create mynet # 创建自定义网络
docker network rm mynet # 删除网络
# 启动容器并加入自定义网络
docker run -d --name app --network mynet nginx
为什么用自定义网络? 同一自定义网络内的容器可以通过容器名直接互相访问(Docker 内置 DNS),无需硬编码 IP。
5. 资源清理
定期清理释放磁盘空间。
docker system prune -a # 一键清理:停止的容器 + 未使用的网络 + 镜像
docker container prune # 仅清理停止的容器
docker image prune -a # 仅清理未使用的镜像
docker volume prune # 仅清理未使用的数据卷
6. Docker Compose
用 YAML 文件定义和管理多容器应用,一条命令启停整个服务栈。
docker-compose up -d # 启动 docker-compose.yml 中所有服务
docker-compose down # 停止并删除容器、网络
docker-compose ps # 查看服务状态
docker-compose logs -f # 查看日志(-f 实时跟踪)
docker-compose build # 重新构建服务镜像
7. 实战示例
单服务快速启动
# Redis
docker run -d --name redis -p 6379:6379 redis
# MySQL(设置 root 密码)
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:8
# 应用 + 日志持久化
docker run -d --name chatapp -v /host/logs:/app/logs myapp:1.0
多容器组网(聊天系统)
# 1. 创建自定义网络
docker network create chatnet
# 2. 启动 Redis 并加入网络
docker run -d --name redis --network chatnet redis
# 3. 启动业务服务并加入同一网络
docker run -d --name chatserver --network chatnet mychat:1.0
# redis 和 chatserver 在同一网络内,可通过容器名互相通信
提示:每个章节的命令都可以直接在终端中运行验证,建议配合实际项目练习加深理解。

Comments NOTHING