在Ubuntu上優化Docker性能可以從多個方面入手,以下是一些關鍵的優化方法:
echo "vm.overcommit_memory = 1" | sudo tee -a /etc/sysctl.conf
echo "vm.swappiness = 0" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
sudo apt-get install -y docker.io=19.03.12-0~ubuntu-$(lsb_release -cs)
sudo systemctl restart docker
sudo docker volume create -d overlay2 -o size=10GB my_volume
sudo docker network create -d bridge my_bridge
sudo iptables -P FORWARD ACCEPT
{
"debug": true,
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"max-concurrent-downloads": 10,
"max-concurrent-uploads": 10
}
docker stats
命令來監控容器資源使用情況。docker stats --no-stream
docker logs
命令查看容器日志,以便快速定位問題。docker logs container_name
apt-mark hold
,鎖定Docker版本,避免自動更新帶來的不兼容問題。.dockerignore
文件排除不必要的文件和目錄,選擇輕量級基礎鏡像,利用多階段構建,利用Docker的緩存機制,使用本地鏡像倉庫。/etc/docker/daemon.json
文件,添加國內鏡像加速地址,提高鏡像拉取速度。docker system prune
命令清理未使用的鏡像、容器、卷和網絡,釋放磁盤空間。通過上述方法,可以顯著提高在Ubuntu上使用Docker的性能和效率。