容器化部署已成为现代运维的核心技能,掌握这些命令让你轻松驾驭从开发到生产的全流程。
docker run -d --name web nginx:latest
docker start web
docker stop web
docker kill web
docker restart web
docker pause web
docker unpause web
docker rm web
docker rm -f web
docker container prune
docker create --name temp alpine sleep 3600
docker rename old_name new_name
docker update --memory 512m web
docker run --restart=always nginx
docker run --health-cmd="curl -f http://localhost || exit 1" --health-interval=30s nginx
docker inspect --format='{{.State.Health.Status}}' web
docker run --cpus=1.5 app
docker run -m 2g --memory-swap=3g app
docker exec -it web /bin/bash
docker exec -d web touch /tmp/test.log
docker logs -f --tail 100 web
docker top web
docker inspect web | jq .
docker port web
docker cp app.conf web:/etc/nginx/conf.d/
docker cp web:/var/log/nginx/error.log ./
docker stats --no-stream
docker stats web mysql
docker diff web
docker commit -c 'CMD ["nginx"]' web nginx:v2
docker export web > web.tar
docker run --cap-add SYS_PTRACE --security-opt seccomp=unconfined debug_tool
nsenter --target $(docker inspect -f {{.State.Pid}} web) --mount --uts --ipc --net --pid
docker pull alpine:3.18
docker images --filter "dangling=false"
docker rmi alpine:3.17
docker rmi -f redis
docker image prune
docker save -o nginx.tar nginx:latest
docker load -i nginx.tar
docker history nginx
docker tag nginx:latest myreg.com/nginx:v1
docker push myreg.com/nginx:v1
docker build -t myapp:v1 --build-arg ENV=prod .
Dockerfile中:COPY --from=builder /app/bin /usr/bin
docker run -v /data mysql
docker run -v /host/path:/container/path nginx
docker volume create app_data
docker run -v app_data:/var/lib/mysql mysql
docker volume inspect app_data
docker volume prune
docker inspect -f '{{ .Mounts }}' web
docker run --tmpfs /tmp:size=100m app
docker run -v /conf:/etc/nginx:ro nginx
docker run --volumes-from db_storage backup_tool
docker network ls
docker network create --driver bridge my_net
docker run --network=my_net web
docker run --network=my_net --name web --network-alias website nginx
docker network inspect my_net
docker network connect my_net existing_container
docker network disconnect my_net container
docker run -P nginx
docker run -p 8080:80 -p 443:443 nginx
docker run --network=host nginx
docker run --link redis:db app
docker run --dns 8.8.8.8 --dns-search example.com alpine
docker run --log-driver=json-file --log-opt max-size=10m nginx
docker run --log-opt tag="{{.Name}}/{{.ID}}" nginx
docker run -e TZ=Asia/Shanghai -e APP_ENV=prod app
docker run -v /etc/localtime:/etc/localtime:ro app
docker run --restart=on-failure:5 app
docker run --sysctl net.core.somaxconn=1024 app
docker run --cpus=".5" -m 500m --blkio-weight=500 app
docker run --oom-score-adj=500 app
docker run --user 1000:1000 app
docker run --read-only app
docker run --cap-add NET_ADMIN --cap-drop SYS_ADMIN app
docker run --security-opt no-new-privileges app
docker run --security-opt apparmor=my_profile app
docker run --security-opt label=type:container_t app
docker run --device=/dev/snd:/dev/snd:rw audio_app
docker swarm init --advertise-addr 192.168.1.100
docker swarm join --token SWMTKN... 192.168.1.100:2377
docker stack deploy -c docker-compose.yml myapp
docker service ls
docker service scale web=5
docker service update --image nginx:1.23 web
docker service rollback web
docker service logs -f web
docker node ls
docker service create --constraint 'node.role==worker' nginx
docker version
docker info
docker system prune -af
docker events --filter 'event=die'
docker builder prune
docker config ls
docker scan nginx:latest
docker system df -v
latest
nginx:1.25.3
--memory
--cpus
max-size
max-file
--user
tmpfs
重要提醒:永远不要在容器内存储重要数据!所有持久化数据必须通过:• 绑定挂载(Bind Mounts)• 命名卷(Named Volumes)• 分布式存储(NFS/Ceph等)
重要提醒:永远不要在容器内存储重要数据!所有持久化数据必须通过:
掌握这100个命令只是起点,真正的容器高手深谙以下原则:✅ 容器即不可变基础设施(Immutable Infrastructure)✅ 日志输出到stdout/stderr而非文件✅ 单容器单进程模型(Sidecar模式除外)✅ 镜像构建遵循最小化原则(如Alpine基础镜像)
记住: 最危险的Docker命令不是rm -f,而是缺乏生产级意识的随意操作。
rm -f