| name | container-ops |
| description | Docker 容器操作与管理 |
| version | 1.0.0 |
| author | terminal-skills |
| tags | ["docker","container","devops"] |
Docker 容器操作
概述
Docker 容器的日常操作,包括生命周期管理、资源限制、日志查看等。
容器生命周期
docker run -d --name myapp nginx
docker run -it --rm ubuntu bash
docker run -d \
--name myapp \
-p 8080:80 \
-v /host/path:/container/path \
-e ENV_VAR=value \
--restart unless-stopped \
nginx
docker start/stop/restart container_name
docker pause/unpause container_name
docker rm container_name
docker rm -f container_name
docker container prune
容器查看
docker ps
docker ps -a
docker ps -q
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
docker inspect container_name
docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name
docker stats
docker stats container_name
docker top container_name
容器交互
docker exec -it container_name /bin/bash
docker exec -it container_name sh
docker exec container_name ls -la
docker logs container_name
docker logs -f container_name
docker logs --tail 100 container_name
docker logs --since 1h container_name
资源限制
docker run -d --memory=512m nginx
docker run -d --cpus=1.5 nginx
docker run -d --cpu-shares=512 nginx
docker update --memory=1g container_name
docker update --cpus=2 container_name
文件操作
docker cp container_name:/path/file ./local
docker cp ./local container_name:/path/
docker diff container_name
docker export container_name > container.tar
docker import container.tar myimage:tag
常见场景
场景 1:调试容器
docker inspect container_name | jq '.[0].State'
docker logs --tail 50 container_name
docker exec -it container_name sh
docker top container_name
场景 2:容器无法启动
docker inspect container_name | jq '.[0].State.ExitCode'
docker inspect container_name | jq '.[0].State.Error'
docker logs container_name
docker run -it --entrypoint sh image_name
场景 3:批量操作
docker stop $(docker ps -q)
docker container prune -f
docker rm -f $(docker ps -aq)
故障排查
| 问题 | 排查方法 |
|---|
| 容器退出 | docker logs, docker inspect |
| 网络不通 | docker network inspect, 检查端口映射 |
| 磁盘满 | docker system df, docker system prune |
| 内存溢出 | docker stats, 检查 OOMKilled |
| 启动慢 | 检查健康检查配置, 镜像大小 |