Docker
Beginner
1 min read
Production Hardening Checklist
Example
# /etc/docker/daemon.json - production Docker daemon config
# {
# "live-restore": true,
# "log-driver": "json-file",
# "log-opts": { "max-size": "10m", "max-file": "5" },
# "userland-proxy": false,
# "no-new-privileges": true
# }
# Hardened docker run command
docker run -d \
--name api \
--restart unless-stopped \
--memory 512m \
--memory-swap 512m \
--cpus 1 \
--read-only \
--tmpfs /tmp:size=64m \
--cap-drop ALL \
--cap-add NET_BIND_SERVICE \
--security-opt no-new-privileges:true \
--user 1001:1001 \
--health-cmd "wget -qO- http://localhost:3000/health || exit 1" \
--health-interval 30s \
--health-retries 3 \
-p 127.0.0.1:3000:3000 \
-e NODE_ENV=production \
myapp:2.1.0
# Verify security posture
docker inspect api --format '{{.HostConfig.ReadonlyRootfs}}'
docker inspect api --format '{{.HostConfig.CapDrop}}'
docker inspect api --format '{{.Config.User}}'
Related Resources
Docker Reference
Complete tag & property list
Docker How-To Guides
Step-by-step practical guides
Docker Exercises
Practice what you've learned
More in Docker