docker search nginx
docker pull nginx:latest
docker images
docker images -a
docker images -q
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
docker images nginx
docker images --digests
docker rmi nginx:latest
docker rmi -f nginx:latest
docker rmi $(docker images -q)
docker image prune -a --force
# 查看某个镜像是否有容器在用
docker ps -a --filter "ancestor=nginx:latest"
docker ps -a --format "{{.Image}}" | sort -u
docker tag nginx:latest myrepo/nginx:v1
docker build -t my-app .
docker push myrepo/nginx:v1
docker save -o nginx.tar nginx:latest
docker load -i nginx.tar
docker run -d --name nginx -p 80:80 nginx:latest
docker run -d -p 80:80 -v /usr/local/nginx.conf:/etc/nginx/nginx.conf:ro nginx
# 1. 创建两个卷(分别存网页和配置)
docker volume create nginx-html
docker volume create nginx-conf
# 2. 运行容器并挂载卷
docker run -d --name my-nginx -p 8080:80 \
-v nginx-html:/usr/share/nginx/html \
-v nginx-conf:/etc/nginx/conf.d \
nginx
# 3. 后续只需将文件放入卷对应目录即可
docker ps
docker ps -a
docker stop nginx
docker start nginx
docker restart nginx
docker rm nginx
docker exec -it nginx /bin/bash
docker logs nginx
docker top nginx
docker inspect nginx
docker run -d --memory=256m nginx
🧮 方法一:按权重分配(--cpu-shares), 参数:--cpu-shares(或 -c),默认值为 1024,这种方式不设定硬性上限,而是在多个容器竞争 CPU 时,按比例分配资源。它仅在 CPU 资源紧张时才生效。
docker run -d --cpu-shares 512 --name nginx nginx
🎯 方法二:限制核心数量(--cpus): 直接设置容器能使用的 CPU 核心数上限,这是最常用且直观的方式。参数:--cpus,支持小数,示例:--cpus=1.5 表示容器最多使用 1.5 个 CPU 核心。
docker run -d --cpus=1.5 --name nginx nginx
🎲 方法三:绑定特定核心(--cpuset-cpus): 将容器“绑定”到特定的物理 CPU 核心上运行,适用于需要CPU隔离或对NUMA架构优化的场景。参数:--cpuset-cpus,示例:--cpuset-cpus="0,1" 表示容器只能使用宿主机上的第0和第1个CPU核心。
docker run -d --cpuset-cpus="0,1" --name nginx nginx
⏱️ 方法四:精细时间配额(--cpu-period 与 --cpu-quota): 这是一种更底层的控制方式,通过设定CPU的调度周期和配额来精确限制。参数:--cpu-period(调度周期,默认100ms)和 --cpu-quota(周期内允许使用的CPU时间)。示例:--cpu-period=100000 --cpu-quota=50000 表示在每100ms的周期内,容器最多使用50ms的CPU时间,即限制使用率为50%。
docker run -d --cpu-period=100000 --cpu-quota=50000 --name nginx nginx
# 将容器 my-container 的 CPU 份额调整为 512
docker update --cpu-shares 512 my-container
# 将容器 my-container 的 CPU 核心数上限调整为 2
docker update --cpus 2 my-container
docker system df
docker system df -v
# 一键清理所有可回收资源
docker system prune
# 清理所有(包括未使用的镜像+卷)
docker system prune -a --volumes