Docker 离线方式安装
一、上传安装包,解压安装包;
自行上传安装包,并解压
tar-zxvfdocker-24.0.6.tgz解压后的docker 安装包如下
二、将解压之后的docker文件移到 /usr/bin目录下;
sudocpdocker/* /usr/bin/三、将docker注册成系统服务;
vim/etc/systemd/system/docker.service四、然后在文件中添加以下内容,退出并保存。
[Unit]Description=Docker Application Container EngineDocumentation=https://docs.docker.comAfter=network-online.target firewalld.serviceWants=network-online.target[Service]Type=notifyExecStart=/usr/bin/dockerdExecReload=/bin/kill-sHUP$MAINPIDLimitNOFILE=infinityLimitNPROC=infinityTimeoutStartSec=0Delegate=yesKillMode=processRestart=on-failureStartLimitBurst=3StartLimitInterval=60s[Install]WantedBy=multi-user.target五、给文件增加可执行权限
chmod+x /etc/systemd/system/docker.service systemctl daemon-reload六、设置开机自启动
systemctlenabledocker.service七、启动docker
systemctl startdockerdockerps// 测试是否安装成功Docker在线安装
参考 :https://juejin.cn/book/6844733746462064654/section/6844733746545950734#heading-0
不同的linux的发型版本,在线安装docker的官方密钥和仓库下载地址不同,安装之前需要先确认docker的发行版本,终端确认发行版本
cat /etc/os-release或者
lsb_release -cs本测试用例使用Ubuntu 22.04 LTS (Jammy Jellyfish) ,进行docker的安装
如果之前装过docker,需要重新安装可以按照以下步骤重新安装
第一步:彻底卸载旧的 Docker(清理环境)
# 1. 卸载所有 Docker 相关的软件包 sudo apt-get remove -y docker docker-engine docker.io containerd runc docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 2. 删除 Docker 的数据和配置文件(此操作会清除所有镜像、容器、卷和配置!) sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd # 3. 删除 Docker 的 APT 源列表文件 sudo rm -f /etc/apt/sources.list.d/docker.list⚠️ 警告:rm -rf /var/lib/docker 会删除所有本地 Docker 数据(镜像、容器、卷等),请确保已备份重要数据。
Ubuntu 环境下安装
$apt-getinstallapt-transport-https ca-certificatescurlsoftware-properties-common $install-m0755-d/etc/apt/keyrings $curl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|gpg--dearmor-o/etc/apt/keyrings/docker.gpg $echo"deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release-cs)stable"|sudotee/etc/apt/sources.list.d/docker.list>/dev/null $apt-getupdate $apt-getinstalldocker-ce $apt-cachepolicy docker-ce# 查看可用版本$sudosystemctlenabledocker$ systemctl startdocker上述列出的命令是一套完整的在 Ubuntu 系统上安装 Docker Engine 的标准流程。下面我为你逐条解释这些命令的作用,并提供一些注意事项和最佳实践建议:
命令详解
安装 Docker 安装过程中所需的依赖包
apt-get install apt-transport-https ca-certificates curl software-properties-common作用:安装 Docker 安装过程中所需的依赖包。
apt-transport-https:允许 APT 使用 HTTPS 源。
ca-certificates:用于处理 SSL/TLS 证书。
curl:用于下载远程文件(如 GPG 密钥)。
software-properties-common:提供 add-apt-repository 命令。
添加 Docker 官方的 GPG 公钥
install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg下载并添加 Docker 官方的 GPG 公钥,用于验证软件包完整性
注意:apt-key 已被标记为过时(deprecated)。官方推荐将密钥保存为单独的 .gpg 文件放在 /etc/apt/trusted.gpg.d/ 目录中,所以推荐上述命令操作
添加 Docker 稳定版官方仓库
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"作用:添加 Docker 的官方 APT 软件源。
作用:添加 Docker 的官方 APT 软件源。
$(lsb_release -cs):自动获取当前 Ubuntu 的代号(如 jammy、focal 等)。
⚠️ 注意:与上一条类似,add-apt-repository 可能不会设置密钥环路径。建议改用直接写入 sources.list.d 的方式。
echo \ "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null刷新 APT 包索引,添加的 Docker 源
sudo apt-get update作用:刷新 APT 包索引,使系统识别新添加的 Docker 源。
安装 Docker Engine , Docker Community Edition(社区版)
# 1. 更新 APT 包索引 sudo apt-get update # 2. 安装最新版 Docker CE 及其插件 sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin可选:安装特定版本:
apt-cache policy docker-ce # 查看可用版本 sudo apt-get install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io设置 Docker 开机自启。
sudo systemctl enable docker立即启动 Docker 服务
sudo systemctl start docker验证安装是否成功:
sudo docker version sudo docker run hello-world检查 Docker 状态
systemctl status docker将当前用户加入 docker 用户组:
- 将你的用户加入 docker 用户组(关键!)
避免每次使用 sudo(可选):
sudo usermod -aG docker $USER安全提示:
将用户加入 docker 组等同于赋予该用户 root 权限(因为可挂载任意目录、提权等)。仅在可信环境中使用
如将dev 用户加入docker 用户组
sudo usermod -aG docker dev命令解析
sudo:需要管理员权限才能修改用户组。 usermod:用于修改用户账户的命令。
-aG:
-a 表示 append(追加),即保留用户原有组,仅新增指定组;
-G 指定要加入的附加组(supplementary groups)。 docker:目标用户组(Docker 默认创建的 socket 所属组)。
dev:你要操作的用户名(而不是 $USER,后者代表当前登录用户)。
- 重新登录或刷新组权限
# 方法一:新开终端(推荐) # 方法二:执行以下命令临时生效 newgrp docker- 验证普通用户可直接使用 Docker
docker info # 不再需要 sudo docker run hello-world最佳实践总结(2025 年推荐方式)
# 1. 更新包索引并安装必要的依赖 sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-core # 2. 添加 GPG 密钥(现代方式) sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # 3. 添加源 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 4. 更新并安装 sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 5. 启动服务 sudo systemctl enable docker sudo systemctl start docker # 6. 验证 docker version docker run --rm hello-worldUbuntu 22.04 (Jammy) Docker 的完整、标准化、经过验证的步骤
好的,以下是针对 Ubuntu 22.04 (Jammy) 系统重新安装 Docker 的完整、标准化、经过验证的步骤。
# 1. 卸载所有 Docker 相关的软件包 sudo apt-get remove -y docker docker-engine docker.io containerd runc docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 2. 删除 Docker 的数据和配置文件(此操作会清除所有镜像、容器、卷和配置!) sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd # 3. 删除 Docker 的 APT 源列表文件 sudo rm -f /etc/apt/sources.list.d/docker.list⚠️ 警告:rm -rf /var/lib/docker 会删除所有本地 Docker 数据(镜像、容器、卷等),请确保已备份重要数据。
✅ 第二步:安装依赖并配置 Docker 官方仓库
# 1. 更新包索引并安装必要的依赖 sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg # 2. 添加 Docker 的官方 GPG 密钥 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg# 3. 设置 Docker 的稳定版仓库(适用于 x86_64/amd64) echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null✅ 第三步:安装 Docker Engine
# 1. 更新 APT 包索引 sudo apt-get update # 2. 安装最新版 Docker CE 及其插件 sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin✅ 第四步:验证安装
# 1. 检查 Docker 服务状态 sudo systemctl status docker --no-pager # 2. 查看 Docker 版本 sudo docker --version # 3. 运行测试容器 sudo docker run hello-world✅ 第五步(可选):配置当前用户免 sudo 使用 Docker
# 将当前用户添加到 docker 组 sudo usermod -aG docker $USER # 重新登录或运行以下命令使组权限生效 newgrp docker✅ 验证最终状态
# 查看 Docker 详细信息 docker info # 查看插件版本 docker compose version总结
你现在已经在 Ubuntu 22.04 上成功重新安装了官方 Docker Engine。关键点:
- 使用了正确的仓库:https://download.docker.com/linux/ubuntu
- 使用了正确的代号:jammy
- 安装了完整的现代 Docker 套件(含 docker-buildx-plugin 和 docker-compose-plugin)
Docker 镜像加速器
网易云、腾讯云、阿里云、USTC(中科大) 科大镜像:https://docker.mirrors.ustc.edu.cn/ 网易:https://hub-mirror.c.163.com/ 阿里云:https://<你的ID>.mirror.aliyuncs.com 七牛云加速器:https://reg-mirror.qiniu.com通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://cwd3by99.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker常见问题
登录镜像仓库登录不上
报错如下
Get “https://xxxxx/v2/”: net/http: request canceled while waiting for
connection (Client.Timeout exceeded while awaiting headers)
表明 Docker 守护进程在尝试访问某个镜像仓库时超时,具体是:
https://xxxxx/v2/错误原因分析
- 网络不通或防火墙限制
- 你的机器无法访问 www-docker.pkg.devops.avic-digital.com
- 可能被防火墙、代理、DNS 或公司内网策略阻止。
- 检查是否需要使用 HTTP/HTTPS 代理 才能出网。
- DNS 解析失败
- 域名 www-docker.pkg.devops.avic-digital.com 无法解析为 IP 地址。
- 使用 nslookup 或 dig 检查。
- 目标服务不可达或宕机
- 私有 registry 服务可能暂时不可用。
- 联系 DevOps 团队确认服务状态。
- HTTPS 证书问题(中间人代理)
- 如果公司使用透明代理进行 HTTPS 拦截,Docker 可能因证书不信任而失败。
- 需要将企业根证书添加到 Docker 的信任链中。
- Docker 配置了错误的镜像仓库地址
- 可能你在 ~/.docker/config.json 或命令行中指定了这个私有仓库,但实际不需要。
- 超时时间过短(少见)
默认请求头等待时间约 30 秒。若网络极慢或服务器响应慢,可能超时。
排查与解决步骤
✅ 1. 检查域名是否能解析
bash
深色版本
nslookup xxxxxxxxxxxxxxxxxx或
dig xxxxxxxxxxxxxxxxxxxxxxxx👉 如果无返回结果 → DNS 问题。
✅ 2. 测试网络连通性
bash
深色版本
ping www-docker.pkg.devops.avic-digital.com或
curl -v https://www-docker.pkg.devops.avic-digital.com/v2/如果 curl 卡住或超时 → 网络不通或被拦截。
如果返回 401 Unauthorized 或 404 → 至少说明能通,服务在运行。
如果提示 SSL certificate problem → 证书问题。
✅ 3. 检查是否需要代理
如果你在公司内网,很可能需要设置代理才能访问外部服务。
临时测试(通过 curl 设置代理):
bash
深色版本
curl -x http://proxy.company.com:8080 -v https://www-docker.pkg.devops.avic-digital.com/v2/如果这样能通 → 你需要为 Docker 配置代理。
为 Docker daemon 配置代理(Ubuntu systemd):
创建配置目录:
bash
sudo mkdir -p /etc/systemd/system/docker.service.d创建代理配置文件:
bash
深色版本
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF [Service] Environment="HTTP_PROXY=http://proxy.company.com:8080" Environment="HTTPS_PROXY=http://proxy.company.com:8080" Environment="NO_PROXY=localhost,127.0.0.1,.company.com" EOF⚠️ 替换 http://proxy.company.com:8080 为你们公司的实际代理地址。
重启 Docker:
bash
深色版本
sudo systemctl daemon-reload sudo systemctl restart docker✅ 4. 检查 Docker 是否被配置了镜像仓库(mirror/registry-mirror)
查看是否有错误配置:
bash
cat /etc/docker/daemon.json检查内容是否包含类似:
json
深色版本
{ "registry-mirrors": ["https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"] }如果是 不必要的配置,请删除或注释掉,然后重启 Docker:
bash
深色版本
sudo systemctl restart docker✅ 5. 检查 ~/.docker/config.json
bash
深色版本
cat ~/.docker/config.json看是否配置了登录这个 registry:
json
深色版本
{ "auths": { "xxxxxxxxxxxxxxxxx": { "auth": "xxx" } } }如果你没有权限或暂时不需要使用它,可以备份后删除该文件。
Docker 离线安装
安装 Docker Compose
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排
使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等
Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml 模板文件来定义一组相关联的应用容器为一个项目
Compose 中有两个重要的概念:
服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例
项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义
在线安装 Docker Compose
Harbor 使用 Docker Compose 来管理容器,因此需要安装 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose安装好后使用
docker-compose -v 查看安装的docker-compose 版本
docker-compose -vdocker-compose version 1.29.2, build 5becea4c
Harbor 镜像仓库安装
Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器,它包括了诸如安全、身份认证、管理等功能。Harbor 支持多种操作系统,包括 Linux。如果你想在基于 CentOS 的系统中安装 Harbor,
Harbor 需要提前安装docker、Docker Compose
下载 Harbor 安装包
访问 Harbor 官方网站 或 GitHub 仓库 获取最新的 Harbor 安装包。选择适合你操作系统的版本下载。例如,对于 Linux,你可以下载 harbor-offline-installer-xxx.tgz 文件。
wget https://github.com/goharbor/harbor/releases/download/v2.5.1/harbor-offline-installer-v2.5.1.tgz tar xzvf harbor-offline-installer-v2.5.1.tgz cd harbor- 配置 Harbor
在 harbor.yml 文件中配置你的 Harbor 设置。你可以根据需要修改配置文件,例如设置管理员密码、HTTPS、Harbor 的主机名等。例如,要设置管理员密码:
# 默认管理员密码,强烈建议修改此密码。 harbor_admin_password: StrongPassword01- 安装 Harbor
使用 ./install.sh 脚本安装 Harbor:
./install.sh- 启动 Harbor
安装完成后,启动 Harbor:
./start.sh- 检查 Harbor 状态
检查 Harbor 是否正常运行:
./check.sh- 访问 Harbor UI
在浏览器中访问 http://your-hostname(替换为你的服务器地址),使用你在 harbor.yml 中设置的用户名(默认为 admin)和密码登录。
以上步骤应该可以帮助你在 CentOS 系统上成功安装 Harbor。如果你使用的是其他 Linux 发行版(如 Ubuntu、Debian),安装过程类似,只需确保 Docker 和 Docker Compose 的安装命令与你的发行版兼容即可。对于其他特定需求(如使用 HTTPS、配置网络等),请参考 Harbor 的官方文档进行详细配置