overlay2
而非aufs
或devicemapper
docker info | grep "Storage Driver"
/etc/docker/daemon.json
中添加:
json
{
"storage-driver": "overlay2"
}
json
{
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 65536,
"Soft": 65536
}
},
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
/var/lib/docker
)迁移到SSDdocker info | grep "Docker Root Dir"
查看当前数据目录多阶段构建: 减少最终镜像大小
FROM golang:1.16 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
FROM alpine:latest
COPY --from=builder /app/myapp /
CMD ["/myapp"]
dockerfile
RUN apt-get update && \
apt-get install -y package1 package2 && \
rm -rf /var/lib/apt/lists/*
.git
node_modules
*.log
*.tmp
--cache-from
参数重用缓存
bash
docker build --cache-from myapp:latest -t myapp:latest .
bash
docker run -it --cpus="1.5" --memory="512m" myapp
dockerfile
FROM alpine:3.14
daemon.json
中):
json
{
"swappiness": 0
}
json
{
"ipv6": false
}
bridge
(默认)macvlan
或ipvlan
host
网络模式(牺牲隔离性)bash
export DOCKER_BUILDKIT=1
docker build -t myapp .
bash
docker build --squash -t myapp .
```dockerfile FROM golang:1.16 AS builder # ...构建步骤...
FROM gcr.io/distroless/base COPY --from=builder /app/myapp / CMD ["/myapp"] ```
docker stats
实时监控docker inspect
查看详细配置docker system df
查看磁盘使用docker events
监控容器事件docker logs
查看容器日志通过实施以上优化措施,可以显著提高Docker的构建和运行速度,特别是在开发环境和持续集成/持续部署(CI/CD)流水线中效果尤为明显。