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
相关推荐
焄塰26 分钟前
Ansible 管理变量和事实
学习·centos·ansible
oe10192 小时前
读From GPT-2 to gpt-oss: Analyzing the Architectural Advances(续)
笔记·gpt·学习
Agome993 小时前
Docker之自定义jkd镜像上传阿里云
阿里云·docker·容器
无能百分百4 小时前
阿里云服务器ECS安装Docker(CentOS 7.x)
docker
Include everything5 小时前
Rust学习笔记(三)|所有权机制 Ownership
笔记·学习·rust
杜子不疼.5 小时前
《Python学习之文件操作:从入门到精通》
数据库·python·学习
★YUI★5 小时前
学习游戏制作记录(玩家掉落系统,删除物品功能和独特物品)8.17
java·学习·游戏·unity·c#
livemetee6 小时前
Flink2.0学习笔记:Flink服务器搭建与flink作业提交
大数据·笔记·学习·flink
INS_KF7 小时前
【C++知识杂记2】free和delete区别
c++·笔记·学习
Easocen8 小时前
Mybatis学习笔记(五)
笔记·学习·mybatis