一、在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