Docker 操作手册
Docker 是 Linux 容器运行时。核心概念: image (只读模板), container (镜像的运行实例), volume (持久化存储), network (容器间通信), compose (多容器编排)。
容器
docker ps docker ps -a docker ps -a --format '{{.ID}} {{.Names}} {{.Status}}' docker ps -q
docker run -d --name myapp \
-p 8080:80 \ -v /data:/app/data \ -v app_data:/app/storage \ -e DATABASE_URL=postgres://... \ --restart unless-stopped \ --network mynet \ --memory 512m \ image:tag
docker stop myapp docker stop -t 30 myapp docker kill myapp docker restart myapp
docker rm myapp docker rm -f myapp docker container prune docker container prune --filter "until=24h"
docker logs myapp --tail 100 -f docker logs myapp --since 5m docker inspect myapp | jq '.[0].State' docker inspect myapp | jq '.[0].NetworkSettings.IPAddress'
docker exec -it myapp sh docker exec myapp cat /etc/resolv.conf docker top myapp docker stats --no-stream docker cp myapp:/app/config.yml ./
docker commit myapp myapp:debug
镜像
docker images docker images --format '{{.Repository}}:{{.Tag}} {{.Size}}'
docker pull alpine:3.20
docker tag alpine:3.20 myrepo/alpine:latest
docker rmi alpine:3.20 docker image prune docker image prune -a docker image prune -a --filter "until=7d"
docker save alpine:3.20 -o alpine.tar docker load -i alpine.tar
docker history alpine:3.20
docker image inspect alpine:3.20 | jq '.[0].RootFS.Layers'
Docker Compose
docker compose up -d docker compose up -d --build docker compose down docker compose down -v docker compose restart docker compose restart nginx docker compose logs -f --tail=50
docker compose ps
docker compose exec app sh docker compose pull
网络
docker network ls
docker network inspect bridge
docker network create --driver bridge mynet
docker network connect mynet myapp docker network disconnect mynet myapp
卷
docker volume ls
docker volume inspect app_data docker volume prune
清理
docker system prune -a --volumes
docker system df
docker system df -v
故障排查
docker logs myapp --tail=50 docker inspect myapp | jq '.[0].State'
docker exec myapp cat /etc/resolv.conf
ss -tlnp | grep <port>
sudo usermod -aG docker $USER