
Docker 命令可以分为镜像管理、容器管理、网络管理、数据卷管理、系统管理五大类。
一、镜像管理
| 命令 | 说明 | 示例 |
|---|---|---|
docker pull |
拉取镜像 | docker pull nginx:latest |
docker images |
列出本地镜像 | docker images |
docker rmi |
删除镜像 | docker rmi nginx:latest |
docker build |
构建镜像 | docker build -t myapp:v1 . |
docker tag |
给镜像打标签 | docker tag myapp:v1 user/myapp:v1 |
docker push |
推送镜像 | docker push user/myapp:v1 |
docker save |
导出镜像为 tar | docker save -o myapp.tar myapp:v1 |
docker load |
从 tar 加载镜像 | docker load -i myapp.tar |
docker history |
查看镜像构建历史 | docker history myapp:v1 |
docker inspect |
查看镜像详细信息 | docker inspect nginx:latest |
# 常用组合
docker pull mysql:8.0
docker build -t myapp:latest .
docker images | grep myapp
docker rmi myapp:latest
二、容器管理
1. 生命周期
| 命令 | 说明 | 示例 |
|---|---|---|
docker run |
创建并启动容器 | docker run -d -p 8080:80 nginx |
docker start |
启动已停止的容器 | docker start mycontainer |
docker stop |
停止容器 | docker stop mycontainer |
docker restart |
重启容器 | docker restart mycontainer |
docker rm |
删除容器 | docker rm mycontainer |
docker pause |
暂停容器 | docker pause mycontainer |
docker unpause |
恢复容器 | docker unpause mycontainer |
docker kill |
强制终止容器 | docker kill mycontainer |
2. 查看容器
| 命令 | 说明 | 示例 |
|---|---|---|
docker ps |
查看运行中的容器 | docker ps |
docker ps -a |
查看所有容器 | docker ps -a |
docker logs |
查看容器日志 | docker logs -f mycontainer |
docker inspect |
查看容器详细信息 | docker inspect mycontainer |
docker stats |
查看容器资源使用 | docker stats |
docker top |
查看容器内进程 | docker top mycontainer |
docker port |
查看端口映射 | docker port mycontainer |
3. 进入容器
| 命令 | 说明 | 示例 |
|---|---|---|
docker exec |
在运行中的容器执行命令 | docker exec -it mycontainer bash |
docker attach |
附加到容器 | docker attach mycontainer |
docker cp |
容器与主机之间复制文件 | docker cp file.txt mycontainer:/app/ |
4. docker run 常用参数
| 参数 | 说明 |
|---|---|
-d |
后台运行 |
-it |
交互式终端 |
-p 8080:80 |
端口映射(主机:容器) |
-v /host:/container |
数据卷挂载 |
--name |
指定容器名 |
-e KEY=VALUE |
设置环境变量 |
--restart always |
自动重启 |
--network |
指定网络 |
--rm |
容器停止后自动删除 |
docker run -d \
--name mysql_db \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v mysql_data:/var/lib/mysql \
--restart always \
mysql:8.0
三、网络管理
| 命令 | 说明 | 示例 |
|---|---|---|
docker network ls |
列出网络 | docker network ls |
docker network create |
创建网络 | docker network create mynet |
docker network inspect |
查看网络详情 | docker network inspect mynet |
docker network connect |
连接容器到网络 | docker network connect mynet mycontainer |
docker network disconnect |
断开容器网络 | docker network disconnect mynet mycontainer |
docker network rm |
删除网络 | docker network rm mynet |
# 创建自定义网络(推荐)
docker network create app_network
# 让多个容器加入同一网络
docker run -d --name app --network app_network myapp
docker run -d --name db --network app_network mysql:8.0
# 同网络内容器可以通过容器名互相访问
docker exec -it app ping db
四、数据卷管理
| 命令 | 说明 | 示例 |
|---|---|---|
docker volume ls |
列出数据卷 | docker volume ls |
docker volume create |
创建数据卷 | docker volume create mydata |
docker volume inspect |
查看数据卷详情 | docker volume inspect mydata |
docker volume rm |
删除数据卷 | docker volume rm mydata |
docker volume prune |
清理未使用的数据卷 | docker volume prune |
# 创建数据卷
docker volume create mysql_data
# 使用数据卷
docker run -d -v mysql_data:/var/lib/mysql mysql:8.0
# 查看数据卷位置
docker volume inspect mysql_data
# 输出:"Mountpoint": "/var/lib/docker/volumes/mysql_data/_data"
五、系统管理
| 命令 | 说明 | 示例 |
|---|---|---|
docker version |
查看 Docker 版本 | docker version |
docker info |
查看 Docker 系统信息 | docker info |
docker system df |
查看磁盘使用情况 | docker system df |
docker system prune |
清理无用资源 | docker system prune -a |
docker system events |
查看实时事件 | docker system events |
# 清理所有未使用的资源(镜像、容器、网络、缓存)
docker system prune -a
# 清理数据卷
docker system prune --volumes
# 查看磁盘占用
docker system df
六、Docker Compose 常用命令
| 命令 | 说明 |
|---|---|
docker-compose up -d |
启动所有服务 |
docker-compose down |
停止并删除容器 |
docker-compose ps |
查看服务状态 |
docker-compose logs -f |
查看日志 |
docker-compose build |
构建镜像 |
docker-compose restart |
重启服务 |
docker-compose exec app bash |
进入服务容器 |
docker-compose pull |
拉取最新镜像 |
docker-compose down -v |
停止并删除数据卷 |