常見問題:無法連接到Docker守護進程、Docker服務啟動失敗。
解決方法:
systemctl status docker.service
確認Docker服務是否運行,若未啟動則執行systemctl start docker
。sudo systemctl stop docker.service
→ sudo rm -rf /var/lib/docker/*
→ sudo systemctl start docker.service
)。sudo setenforce 0
)或永久修改配置文件(/etc/selinux/config
中將SELINUX=enforcing
改為disabled
),并重啟系統。常見問題:容器狀態為“Exited”或“Created”,無法正常運行。
解決方法:
docker logs <container_id>
獲取容器停止的具體原因(如應用崩潰、配置錯誤)。FROM ubuntu:20.04
)、RUN/CMD指令是否正確(如apt-get update
是否成功)、環境變量是否配置無誤。--memory="512m"
(限制內存)或--cpus="1.5"
(限制CPU)調整資源配額。docker rm <container_id>
)并重新運行(docker run -d --name <new_name> <image_name>
)。常見問題:容器無法ping通外部IP、宿主機無法訪問容器端口。
解決方法:
docker network ls
查看網絡列表,docker network inspect <network_name>
確認網絡參數(如子網、網關)是否正確;若網絡異常,可刪除并重新創建默認網絡(docker network rm bridge
→ docker network create bridge
)。docker exec -it <container_id> /bin/bash
進入容器,使用ping <external_ip>
測試與外部的連通性。firewall-cmd --zone=public --add-port=8080/tcp --permanent
→ firewall-cmd --reload
)。docker run -p 8080:80 nginx
,將容器80端口映射到宿主機8080端口)。常見問題:/var/lib/docker/overlay2
目錄占用過高,導致Docker無法啟動或運行緩慢。
解決方法:
docker system prune
命令清理停止的容器、未使用的鏡像、網絡和構建緩存(默認會提示確認,添加-a
參數可清理所有未使用的鏡像)。d_type
支持(若未啟用,需重新格式化分區并添加-O d_type=1
選項);或修改/etc/docker/daemon.json
文件,添加{"storage-driver": "overlay2", "storage-opts": ["overlay2.override_kernel_check=true"]}
。常見問題:使用-v
掛載目錄后,容器內提示“Permission denied”或無法寫入文件。
解決方法:
sudo setenforce 0
,測試是否解決問題(若解決,說明是SELinux導致)。chcon
命令修改掛載目錄的安全上下文(如sudo chcon -Rt svirt_sandbox_file_t /host/path
),或添加--privileged=true
參數運行容器(謹慎使用,會賦予容器root權限)。/etc/selinux/config
文件,將SELINUX=enforcing
改為disabled
,并重啟系統。常見問題:Docker客戶端與服務端版本不匹配、舊版本存在Bug。
解決方法:
docker version
查看客戶端與服務端版本,確保兩者兼容(如客戶端20.10.x需對應服務端20.10.x)。sudo yum remove docker docker-client docker-common
),添加Docker官方倉庫(sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
),安裝最新版本(sudo yum install -y docker-ce docker-ce-cli containerd.io
)。