Docker 核心命令大全
# 1. 镜像管理(Image)
# 常用镜像命令
| 命令 | 作用 |
|---|---|
docker images | 查看本地已有的镜像 |
docker search <镜像名> | 在 Docker Hub 搜索镜像 |
docker pull <镜像名>:<标签> | 从远程仓库拉取镜像(默认 latest) |
docker rmi <镜像ID> | 删除本地镜像 |
docker tag <镜像ID> <新名称>:<新标签> | 给镜像打新标签 |
docker history <镜像名> | 查看镜像构建历史 |
docker save -o myimage.tar <镜像名> | 导出镜像文件 |
docker load -i myimage.tar | 导入镜像文件 |
docker build -t myapp:v1 . | 从 Dockerfile 构建镜像 |
# 2. 容器管理(Container)
# 容器基本操作
| 命令 | 作用 |
|---|---|
docker ps | 查看运行中的容器 |
docker ps -a | 查看所有容器(包括已停止) |
docker run --name myapp -d nginx | 以 nginx 镜像后台运行容器 |
docker run -it ubuntu /bin/bash | 启动 Ubuntu 并进入交互模式 |
docker start <容器ID> | 启动容器 |
docker stop <容器ID> | 停止容器 |
docker restart <容器ID> | 重启容器 |
docker rm <容器ID> | 删除容器 |
docker kill <容器ID> | 直接杀死容器进程 |
# 查看容器信息
| 命令 | 作用 |
|---|---|
docker inspect <容器ID> | 查看容器详细信息 |
docker logs <容器ID> | 查看容器日志 |
docker top <容器ID> | 查看容器内部进程 |
docker stats <容器ID> | 查看容器资源占用情况 |
# 进入容器内部
| 命令 | 作用 |
|---|---|
docker exec -it <容器ID> bash | 进入容器交互式 Shell |
docker attach <容器ID> | 连接到正在运行的容器 |
docker cp <容器ID>:<容器路径> <本机路径> | 从容器拷贝文件到宿主机 |
# 3. 数据卷管理(Volumes)
# 数据持久化
| 命令 | 作用 |
|---|---|
docker volume create mydata | 创建数据卷 |
docker volume ls | 查看所有数据卷 |
docker volume inspect mydata | 查看数据卷信息 |
docker run -v mydata:/data nginx | 运行容器并挂载数据卷 |
docker volume rm mydata | 删除数据卷 |
# 直接挂载宿主机目录
docker run -v /home/user/data:/app/data nginx
1
# 4. 网络管理(Network)
# 查看 & 创建网络
| 命令 | 作用 |
|---|---|
docker network ls | 查看所有 Docker 网络 |
docker network inspect <网络名> | 查看网络详细信息 |
docker network create mynet | 创建一个自定义网络 |
# 容器网络连接
| 命令 | 作用 |
|---|---|
docker run --network=mynet nginx | 运行容器并加入 mynet |
docker network connect mynet <容器名> | 将现有容器加入 mynet |
docker network disconnect mynet <容器名> | 将容器从 mynet 移除 |
# 5. Docker Compose(多容器管理)
# Compose 常用命令
| 命令 | 作用 |
|---|---|
docker-compose up -d | 启动 docker-compose.yml 中的所有服务 |
docker-compose down | 停止并删除所有容器 |
docker-compose ps | 查看 Compose 管理的容器 |
docker-compose logs | 查看 docker-compose 运行的日志 |
docker-compose restart | 重启 docker-compose 容器 |
# docker-compose.yml 示例
version: "3"
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 6. 资源管理 & 清理
# 清理无用资源
| 命令 | 作用 |
|---|---|
docker system df | 查看磁盘占用情况 |
docker system prune -a | 清理所有无用的镜像、容器、网络 |
docker image prune -a | 删除所有未使用的镜像 |
docker volume prune | 删除未使用的数据卷 |
# 7. 安全 & 进阶命令
# 容器权限控制
| 命令 | 作用 |
|---|---|
docker run --user 1000:1000 nginx | 以特定用户运行容器 |
docker run --read-only nginx | 以只读模式运行容器 |
docker update --memory=500m <容器ID> | 限制容器最大内存 |
# 进阶命令
| 命令 | 作用 |
|---|---|
docker commit <容器ID> mynewimage | 将容器保存为新的镜像 |
docker export -o mycontainer.tar <容器ID> | 导出容器文件系统 |
docker import mycontainer.tar | 导入容器文件 |
# 8. Dockerfile 指南
# 基本示例(Java 应用)
FROM openjdk:17
WORKDIR /app
COPY myapp.jar myapp.jar
CMD ["java", "-jar", "myapp.jar"]
1
2
3
4
2
3
4
构建 & 运行:
docker build -t myapp:v1 .
docker run -d -p 8080:8080 myapp:v1
1
2
2
编辑 (opens new window)