当前位置: 首页 > news >正文

linux 环境下Docker 安装

在线安装

参考 :https://juejin.cn/book/6844733746462064654/section/6844733746545950734#heading-0

Ubuntu 环境下安装

$  apt-get install apt-transport-https ca-certificates curl software-properties-common
$   install -m 0755 -d /etc/apt/keyrings
$  curl -fsSL https://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" |   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ apt-get update
$ apt-get install docker-ce
$ apt-cache policy docker-ce  # 查看可用版本
$ sudo systemctl enable docker
$ systemctl start docker

上述列出的命令是一套完整的在 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 的官方 APT 软件源

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 Community Edition(社区版)

apt-get install docker-ce

可选:安装特定版本:

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 用户组:

避免每次使用 sudo(可选):

sudo usermod -aG docker $USER

最佳实践总结(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-world

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 离线安装


文章转载自:

http://DyHmzrJq.jcyrs.cn
http://Qcz7eGnQ.jcyrs.cn
http://GU77Pz4k.jcyrs.cn
http://IdCzAoy7.jcyrs.cn
http://mbSnMo7b.jcyrs.cn
http://OksohvFb.jcyrs.cn
http://0dwaLTDe.jcyrs.cn
http://bhYRk3o1.jcyrs.cn
http://geQ6b9m5.jcyrs.cn
http://cz752b96.jcyrs.cn
http://nAPGckgb.jcyrs.cn
http://9VsCkBYE.jcyrs.cn
http://lKTeEvU2.jcyrs.cn
http://iDUyIkWl.jcyrs.cn
http://rFujZ26O.jcyrs.cn
http://HB7176gB.jcyrs.cn
http://8Wsm2mrp.jcyrs.cn
http://xuBbDpqv.jcyrs.cn
http://baFpQv8e.jcyrs.cn
http://HPFYJ8PT.jcyrs.cn
http://A60aM4VC.jcyrs.cn
http://iPku7rrd.jcyrs.cn
http://lr0LXtTM.jcyrs.cn
http://TtkkY5FT.jcyrs.cn
http://2vLM9a5y.jcyrs.cn
http://YJB8ND7p.jcyrs.cn
http://sntFRL02.jcyrs.cn
http://whBwAWuy.jcyrs.cn
http://H6KbVfZM.jcyrs.cn
http://RwO62e2W.jcyrs.cn
http://www.dtcms.com/a/374591.html

相关文章:

  • Nginx 配置
  • 20250910_《SQL Server 数据库事务日志定期清理方案(精简优化版)》以10.1.1.31服务器的gtp-default数据库为例
  • 多输入(input)多输出(output)验证
  • 排查JSch连接SFTP服务器失败的问题
  • JMeter压测过程中监控服务器CPU及内存的方法
  • 整理python快速构建数据可视化前端的Dash库
  • Redis缓存穿透、缓存击穿与雪崩防护及性能优化实战指南
  • ArcGIS学习-20 实战-地形研究
  • Ubuntu下基于Nginx+ffmpeg+video.js的HLS流媒体视频播放方案
  • Vue2 VS Vue3
  • 【ArcGIS】如何编辑图层的属性表
  • VueFlow的箭头怎么调整
  • 基于Vue3 +ElementuiPlus + Dexie.js自研的浏览器插件新建标签页tab
  • 【序列晋升】30 Spring Cloud Vault 安全配置管理的微服务守护者
  • 狂想-一种新颖的低成本内嵌标记的视触觉感知前导方案
  • 兰洋科技双展联动展示液冷创新成果,技术驱动打造绿色算力新基建
  • INDEMIND亮相2025科技创变者大会,以机器人空间智能技术解锁具身智能新边界
  • 百度SEM里什么是搜索广告、搜索词、否定关键词、上方位(竞价)广告?
  • 百度竞价推广:百度搜索竞价推广代运营
  • rabbitmq如何保证消息不丢失
  • 做百度SEM付费搜索推广时,竞价账号定向怎么设置?
  • html+css+JavaScript实现一个简单的登录
  • 【国内电子数据取证厂商龙信科技】从SQL语句开始数据库分析
  • 字节跳动Seed推出「机器人大脑」Robix:让机器人学会思考、规划与灵活互动
  • 【ComfyUI】Flux Schnell Fp8量化版图像生成
  • 【3DV 进阶-2】Hunyuan3D2.1 训练代码详细理解下-数据读取流程
  • 从零开始的云计算生活——第六十天,志在千里,使用Jenkins部署K8S
  • 平板热点频繁断连?三步彻底解决
  • nand flash的擦除命令使用
  • 《Pod调度失效到Kubernetes调度器的底层逻辑重构》