Docker学习笔记-docker安装、删除

一、在centOS 7中docker的默认安装目录

bash 复制代码
# 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 官方镜像源):

bash 复制代码
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}

2、日志驱动与配置

定义容器日志的存储驱动(如 json-file、syslog)及日志轮换策略:

bash 复制代码
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

3、存储驱动设置

选择容器和镜像的存储驱动(如 overlay2、devicemapper):

bash 复制代码
{
  "storage-driver": "overlay2"
}

4、网络配置

定义默认的容器网络模式或 DNS 设置:

bash 复制代码
{
  "dns": ["8.8.8.8", "8.8.4.4"],
  "default-address-pools": [{"base": "10.10.0.0/16", "size": 24}]
}

5、安全策略

配置用户组权限或启用 TLS 加密通信:

bash 复制代码
{
  "userns-remap": "default",
  "tls": true,
  "tlscacert": "/etc/docker/ca.pem"
}
  • 国内镜像加速 :配置 registry-mirrors 提升拉取镜像速度。
  • 日志管理:限制容器日志大小,防止磁盘占满。
  • 安全隔离 :通过 userns-remap 将容器进程映射到独立用户命名空间。
  • 多环境适配:为开发、测试环境配置不同的默认网络或资源限制。

四、移除旧版本docker

1、移除命令

bash 复制代码
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 相关包:

bash 复制代码
rpm -qa | grep -i docker
# 或
yum list installed | grep -i docker

常见的 Docker 包名可能是:

  • docker-ce(社区版)
  • docker-ee(企业版)
  • docker-engine(旧版)

2. 使用正确的包名卸载

根据上一步的结果,使用实际包名卸载。例如:

bash 复制代码
curl -fsSL https://get.docker.com/ | sudo sh -s -- --uninstall

3. 尝试官方卸载脚本(可选)

如果通过 Docker 官方脚本安装,可使用其提供的卸载脚本:

bash 复制代码
curl -fsSL https://get.docker.com/ | sudo sh -s -- --uninstall

4. 手动清理残留文件

如果卸载后仍残留文件,手动删除:

bash 复制代码
# 删除 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 是否彻底删除:

bash 复制代码
which docker  # 应无输出
docker --version  # 应提示命令未找到

五、安装docker

1、测试环境,vm虚拟机,centOS 7.9;

2、配置docker yum源:

bash 复制代码
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安装的是社区版本:

bash 复制代码
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4、 启动& 开机启动docker; enable + start 二合一

bash 复制代码
systemctl enable docker --now

5、# 配置加速

bash 复制代码
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 版本和运行状态:

bash 复制代码
docker --version
systemctl status docker
相关推荐
Johny_Zhao2 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
zwjapple2 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
DKPT3 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
代码老y4 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
巴伦是只猫5 小时前
【机器学习笔记Ⅰ】13 正则化代价函数
人工智能·笔记·机器学习
DuelCode5 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
好好研究5 小时前
学习栈和队列的插入和删除操作
数据结构·学习
新中地GIS开发老师6 小时前
新发布:26考研院校和专业大纲
学习·考研·arcgis·大学生·遥感·gis开发·地理信息科学
SH11HF7 小时前
小菜狗的云计算之旅,学习了解rsync+sersync实现数据实时同步(详细操作步骤)
学习·云计算
Frank学习路上7 小时前
【IOS】XCode创建firstapp并运行(成为IOS开发者)
开发语言·学习·ios·cocoa·xcode