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
相关推荐
Liudef06几秒前
使用Docker部署MongoDB
mongodb·docker·容器
jz_ddk20 分钟前
[学习] RTKLib详解:rtcm2.c、rtcm3.c、rtcm3e与rtcmn.c
c语言·学习·算法
霸王蟹23 分钟前
React 19 中的useRef得到了进一步加强。
前端·javascript·笔记·学习·react.js·ts
霸王蟹24 分钟前
React 19版本refs也支持清理函数了。
前端·javascript·笔记·react.js·前端框架·ts
Generalzy1 小时前
学习!FastAPI
学习·sqlite·fastapi
ha20428941941 小时前
c++学习之--- list
c语言·c++·学习·list
Vizio<1 小时前
基于CNN的猫狗识别(自定义CNN模型)
人工智能·笔记·深度学习·神经网络·cnn
N_NAN_N1 小时前
程序设计语言----软考中级软件设计师(自用学习笔记)
笔记·学习
ZHOU_WUYI2 小时前
React与Docker中的MySQL进行交互
mysql·react.js·docker
Will_11302 小时前
如何实现k8s高可用
运维·docker·容器