Docker常用命令

容器状态

查看正在运行的容器:

1
docker ps

查看所有容器,包括已停止的:

1
docker ps -a

查看容器资源占用:

1
docker stats

查看容器详细信息:

1
docker inspect container_name_or_id

启动与停止

启动容器:

1
docker start container_name_or_id

停止容器:

1
docker stop container_name_or_id

重启容器:

1
docker restart container_name_or_id

删除已停止容器:

1
docker rm container_name_or_id

强制删除运行中的容器:

1
docker rm -f container_name_or_id

进入容器

进入容器的 shell:

1
docker exec -it container_name_or_id bash

如果容器里没有 bash,使用 sh

1
docker exec -it container_name_or_id sh

在容器里执行单条命令:

1
docker exec container_name_or_id ls -lah /app

查看日志

查看实时日志:

1
docker logs -f container_name_or_id

查看最近 200 行日志:

1
docker logs --tail=200 container_name_or_id

查看带时间戳的日志:

1
docker logs -f --timestamps container_name_or_id

按时间查看日志:

1
docker logs --since="2026-06-16T00:00:00" container_name_or_id

镜像管理

查看本地镜像:

1
docker images

拉取镜像:

1
docker pull nginx:latest

删除镜像:

1
docker rmi image_name_or_id

构建镜像:

1
docker build -t app-name:latest .

查看镜像历史:

1
docker history image_name_or_id

运行容器

后台运行容器:

1
docker run -d --name web nginx:latest

映射端口:

1
docker run -d --name web -p 8080:80 nginx:latest

挂载目录:

1
docker run -d --name web -v /srv/nginx/html:/usr/share/nginx/html nginx:latest

设置环境变量:

1
docker run -d --name app -e NODE_ENV=production app-name:latest

设置自动重启:

1
docker run -d --name app --restart unless-stopped app-name:latest

Docker Compose

启动服务:

1
docker compose up -d

查看服务状态:

1
docker compose ps

查看服务日志:

1
docker compose logs -f

只看某个服务日志:

1
docker compose logs -f service_name

重启某个服务:

1
docker compose restart service_name

停止并删除服务容器:

1
docker compose down

重新构建并启动:

1
docker compose up -d --build

清理空间

查看 Docker 占用:

1
docker system df

清理停止的容器、未使用的网络、悬空镜像和构建缓存:

1
docker system prune

清理所有未使用镜像:

1
docker image prune -a

清理构建缓存:

1
docker builder prune

清理未使用的数据卷前要谨慎,可能会删除数据库等持久化数据:

1
docker volume prune

网络排查

查看 Docker 网络:

1
docker network ls

查看某个网络详情:

1
docker network inspect network_name

创建网络:

1
docker network create app-network

让容器加入网络:

1
docker network connect app-network container_name_or_id

文件复制

从宿主机复制文件到容器:

1
docker cp ./config.yml container_name_or_id:/app/config.yml

从容器复制文件到宿主机:

1
docker cp container_name_or_id:/app/logs ./logs

备份与迁移

导出容器文件系统:

1
docker export container_name_or_id > container.tar

导入为镜像:

1
docker import container.tar app-backup:latest

保存镜像:

1
docker save app-name:latest > app-name.tar

加载镜像:

1
docker load < app-name.tar

常见排障

查看容器为什么退出:

1
2
3
docker ps -a
docker logs --tail=200 container_name_or_id
docker inspect container_name_or_id

检查端口是否映射正确:

1
docker port container_name_or_id

检查容器内进程:

1
docker top container_name_or_id

检查宿主机端口占用:

1
ss -lntp

检查磁盘空间:

1
2
df -h
docker system df