642 字
2 分钟
Docker 安装指南
WARNINGPS:此文章为归档文章,日期固定为 2026-01-01,如有修改将修改为最后修改日期,以便重新启用该文章
NOTE因为 Docker 镜像在国内拉取较慢,所以我们一般使用镜像站进行拉取,或者自建 Docker 仓库
这里推荐一个镜像站轩辕镜像站
安装 Docker
一行命令安装(推荐)
专为国内用户优化的 Docker 镜像加速解决方案,一键配置即可享受极速下载体验
bash <(curl -sSL https://xuanyuan.cloud/docker.sh)Ubuntu 手动安装
# 安装前先卸载操作系统默认安装的docker,sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装必要支持sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
# 添加 Docker## 官方 GPG key (可能国内现在访问会存在问题)curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg## 阿里源(推荐使用阿里的gpg KEY)curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加 apt 源:## Docker官方源echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null## 阿里apt源echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新源sudo apt updatesudo apt-get update
# 安装最新版本的Dockersudo apt install docker-ce docker-ce-cli containerd.io
# 等待安装完成...
# 查看Docker版本sudo docker version
# 查看Docker运行状态sudo systemctl status dockerCentOS / RHEL
# 更新 yum 包yum -y update## 区分## yum -y update:升级所有包同时也升级软件和系统内核;## yum -y upgrade:只升级所有包,不升级软件和系统内核
# 卸载旧版本yum remove docker docker-common docker-selinux docker-engine
# 安装需要的软件包yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置 yum 源## 设置一个yum源,下面两个都可用## 中央仓库yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo## 阿里仓库 推荐yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 选择docker版本并安装## 查看可用版本yum list docker-ce --showduplicates | sort -r## 安装指定版本#sudo yum -y install docker-ce-17.12.1.ce## 安装Dockeryum -y install docker-ce
# 等待安装完成...
# 查看Docker版本docker version
# 查看Docker运行状态systemctl status dockerAlpine
# 更新软件源 确保有community源apk update
# 安装dockerapk add docker docker-compose
# 配置文件## 创建配置目录mkdir -p /etc/docker## 配置daemon.jsoncat > /etc/docker/daemon.json << 'EOF'{ "log-driver": "json-file", "log-opts": { "max-size": "5m", "max-file": "2" }, "storage-driver": "overlay2", "default-ulimits": { "nofile": { "Name": "nofile", "Hard": 1024, "Soft": 512 } }, "max-concurrent-downloads": 1, "max-concurrent-uploads": 1}EOF
## 重启Docker使配置生效rc-service docker restart
# 常用命令## 开机自启rc-update add restart boot## 重启Docker服务rc-service docker restart## 启动Docker服务rc-service docker start## 停止Docker服务rc-service docker stop## 查看Docker服务状态rc-service docker status生产环境配置 Docker
更换工作目录
由于docker默认工作目录在 /var/lib/docker/ 下,生产环境的系统磁盘有限,所以我们需要将默认目录修改到自定义的目录下,本文修改到 /opt/docker/ 目录下
注意:此操作可能会造成Docker数据丢失,建议在刚安装完docker后进行此操作
原位置:/var/lib/docker/
修改配置
# 停止DOcker服务sudo systemctl stop docker
# 创建新的数据目录,用于存储Docker数据mdkir -p /opt/docker/
# 修改这个数据目录的权限chmod -R 777 /opt/docker/
# 复制文件+权限 (如有)sudo cp -a /var/lib/docker/* /opt/docker/
# 创建Docker配置文件mkdir /etc/dockervim /etc/docker/daemon.json## 在/etc/docker/daemon.json 文件内添加
{ "data-root": "/opt/docker"}
# 如果需要转移数据,此操作必须在转移数据后操作!!!sudo systemctl daemon-reloadsudo systemctl restart docker
# 验证是否成功## 在输出的信息中,找到“Docker Root Dir”一项。它应该显示新的存储路径,例如 /opt/docker/。sudo docker info
# 确认数据无误后,删除原来的内容(可选)rm -rf /var/lib/docker限制日志数量
修改配置文件(被动)
给 Docker 添加配置文件,限制日志文件数量及其大小。
# 修改 Docker 配置文件vim /etc/docker/daemon.json
# 添加以下配置
"log-opts": {"max-size":"500m", "max-file":"3"}
# 重载并重启docker服务systemctl daemon-reloadsystemctl restart dockermax-size=500m,意味着一个容器日志大小上限是500M
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json
注:设置后只对新添加的容器有效。
Shell 脚本删除 Docker 日志(主动)
写一个脚本,定时运行进行删除 Docker 日志
#!/bin/bash
# Docker容器日志清理脚本 du -h --max-depth=1
# 设置Docker日志文件存储路径log_path="/opt/docker/containers"
# 获取所有容器IDcontainer_ids=$(ls -1 $log_path)
# 循环处理每个容器for container_id in $container_ids; do # 构造日志文件路径 log_file="${log_path}/${container_id}/${container_id}-json.log"
# 检查日志文件是否存在 if [ -f "$log_file" ]; then echo "清理容器 ${container_id} 的日志文件: ${log_file}"
# 清空日志文件 truncate -s 0 "$log_file" else echo "未找到容器 ${container_id} 的日志文件: ${log_file}" fidone
echo "日志清理完成。"其他配置
# 指定私服仓库地址"insecure-registries": [ "http://harbor:30001"]
# 镜像站点"registry-mirrors": [ "http://harbor:30001", "https:/docker.1panel.live" ]签名证书,实现私服访问
Linux
# 1. 获取Harbor服务器的证书openssl s_client -connect harbor.chengyun.local:443 -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM > harbor-cert.pem
# 2. 创建Docker证书目录sudo mkdir -p /etc/docker/certs.d/harbor.chengyun.local
# 3. 复制证书到Docker信任目录sudo cp harbor-cert.pem /etc/docker/certs.d/harbor.chengyun.local/ca.crt
# 4. 同时添加到系统CA证书(可选但推荐)sudo cp harbor-cert.pem /usr/local/share/ca-certificates/harbor.chengyun.local.crtsudo update-ca-certificates
# 5. 重启Docker服务sudo systemctl restart dockerWindows
# 在git Bash中执行以下命令echo | openssl s_client -connect harbor.chengyun.local:443 -servername harbor.chengyun.local 2>/dev/null | openssl x509 > harbor-ca.crt然后把这个 harbor-ca.crt 作为根 CA 安装到“受信任的根证书颁发机构”
- 在文件资源管理器中双击
harbor-ca.crt - 点击 “安装证书…”
- 选择 “本地计算机” → 下一步
- 选择 “将所有证书放入下列存储” → 点击“浏览”
- 选择 “受信任的根证书颁发机构” → 确定 → 下一步 → 完成
- 输入管理员密码(如有)
- 重启 Docker Desktop
备份/迁移 Docker
先欠着
卸载 Docker
在卸载前,需确认是否保留容器、镜像、卷或配置文件
Ubuntu
停止 Docker 相关服务
# 停止Docker服务sudo systemctl stop docker docker.socket containerd.service
# 确认服务已停止sudo systemctl status docker # 应显示“inactive”移除 DOcker 包
# 卸载Docker包sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-scan-plugin
# 自动清理未使用依赖sudo apt autoremove -y删除残留文件与目录
# 删除核心数据目录(镜像、容器、卷等)sudo rm -rf /var/lib/docker /var/lib/containerd
# 删除配置文件sudo rm -rf /etc/docker /etc/default/docker
# 删除用户配置rm -rf ~/.docker
# 删除日志文件sudo rm -rf /var/log/docker /var/log/containerdCentOS / RHEL
停止服务与进程
sudo systemctl stop docker containerdsudo systemctl disable docker containerd # 禁止开机自启移除 Docker 包
sudo yum remove -y docker-ce docker-ce-cli containerd.io docker-compose-pluginsudo yum autoremove -y清理残留文件
sudo rm -rf /var/lib/docker /var/lib/containerd /etc/docker ~/.dockersudo rm -rf /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.socketsudo systemctl daemon-reload # 刷新systemd配置WARNINGPS:此文章为归档文章,日期固定为 2026-01-01,如有修改将修改为最后修改日期,以便重新启用该文章