一、在centOS 7中docker的默認安裝目錄
# Docker 主配置文件目錄
ls /etc/docker# Docker 數據目錄(鏡像、容器、卷等)
ls /var/lib/docker# Docker 可執行文件路徑
which docker # 輸出類似 /usr/bin/docker
二、docker文件目錄說明
目錄/文件 | 用途 |
---|---|
/etc/docker/daemon.json | Docker 守護進程配置文件 |
/var/lib/docker | Docker 數據存儲(鏡像、容器、網絡等) |
/usr/bin/docker | Docker 客戶端命令行工具 |
/run/docker.sock | Docker 守護進程通信的 Unix 套接字 |
三、daemon.json文件介紹
daemon.json
?是 Docker 守護進程(dockerd
)的核心配置文件,用于全局設置 Docker 的運行時參數。通過該文件,您可以自定義 Docker 的默認行為,例如鏡像加速、日志驅動、存儲配置、網絡設置等。
1、鏡像倉庫配置
指定私有鏡像倉庫地址或配置鏡像加速(如阿里云、Docker 官方鏡像源):
{"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
2、日志驅動與配置
定義容器日志的存儲驅動(如 json-file、syslog)及日志輪換策略:
{"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"}
}
3、存儲驅動設置
選擇容器和鏡像的存儲驅動(如 overlay2、devicemapper):
{"storage-driver": "overlay2"
}
4、網絡配置
定義默認的容器網絡模式或 DNS 設置:
?
{"dns": ["8.8.8.8", "8.8.4.4"],"default-address-pools": [{"base": "10.10.0.0/16", "size": 24}]
}
5、安全策略
配置用戶組權限或啟用 TLS 加密通信:
{"userns-remap": "default","tls": true,"tlscacert": "/etc/docker/ca.pem"
}
- 國內鏡像加速:配置?
registry-mirrors
?提升拉取鏡像速度。 - 日志管理:限制容器日志大小,防止磁盤占滿。
- 安全隔離:通過?
userns-remap
?將容器進程映射到獨立用戶命名空間。 - 多環境適配:為開發、測試環境配置不同的默認網絡或資源限制。
四、移除舊版本docker
1、移除命令
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
2、報錯解決:
如果遇到下面的報錯的卸載失敗問題是由于包名不匹配導致的。在 CentOS 7 中,Docker 的包名可能與您嘗試卸載的名稱不同。
解決方法:
1. 確認已安裝的 Docker 包
首先列出所有已安裝的 Docker 相關包:
rpm -qa | grep -i docker
# 或
yum list installed | grep -i docker
常見的 Docker 包名可能是:
docker-ce
(社區版)docker-ee
(企業版)docker-engine
(舊版)
2. 使用正確的包名卸載
根據上一步的結果,使用實際包名卸載。例如:
curl -fsSL https://get.docker.com/ | sudo sh -s -- --uninstall
3. 嘗試官方卸載腳本(可選)
如果通過 Docker 官方腳本安裝,可使用其提供的卸載腳本:
curl -fsSL https://get.docker.com/ | sudo sh -s -- --uninstall
?4. 手動清理殘留文件
如果卸載后仍殘留文件,手動刪除:
# 刪除 Docker 數據目錄(謹慎操作!)
sudo rm -rf /var/lib/docker# 刪除配置文件
sudo rm -rf /etc/docker# 刪除 systemd 服務文件
sudo rm -f /usr/lib/systemd/system/docker.service
sudo rm -f /usr/lib/systemd/system/docker.socket
5. 驗證卸載
重啟系統后檢查 Docker 是否徹底刪除:
which docker # 應無輸出
docker --version # 應提示命令未找到
五、安裝docker
1、測試環境,vm虛擬機,centOS 7.9;
2、配置docker yum源:
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安裝 最新 docker,ce安裝的是社區版本:
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4、 啟動& 開機啟動docker; enable + start 二合一
systemctl enable docker --now
5、# 配置加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com","https://docker.m.daocloud.io"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
6、驗證安裝,檢查 Docker 版本和運行狀態:
docker --version
systemctl status docker