Docker安装+可用镜像收集

Docker安装+可用镜像收集
狂犬主子由于众所周知的原因,Docker 和 Docker Hub 无法访问,为了解决在运维和部署中的安装和拉取容器问题,避免对业务造成影响,我们需要合理配置使用镜像。
安装
手动安装
官方安装脚本 get.docker.com 可能无法访问,只能手动安装,实际上官方文档中也建议在生产环境中通过手动的方式来安装 Docker。
由于系统在不断更新,这边直接提供 CERNET MirrorZ 的帮助(根据 官方文档 修改而来):
https://help.mirrors.cernet.edu.cn/docker-ce/
需要注意的是,在该帮助提供的命令中,默认的 gpg 密钥下载地址仍为 download.docker.com
,这么做可以增加安全性,但如果你无法访问,可以将其替换为 mirrors.cernet.edu.cn/docker-ce
。
1 | # Uninstall all conflicting packages: |
如果您使用其他类 Debian 系统,如 Kali Linux,请将上面的 $(. /etc/os-release && echo "$VERSION_CODENAME")
替换成 bookworm
。
注意,官方 Docker CE 与 Debian 仓库里的 docker.io
不同:官方 Docker 用 docker compose
来 compose,compose 作为一个插件;Debian 仓库中的 docker.io
用 docker-compose
来 compose。
对于桌面使用,为了避免每次执行 docker 都需要在前面加上 sudo,可能需要给普通用户添加 docker 权限(使用 Docker Desktop 安装的无需进行此操作):
1 | # 查看docker用户组 |
第三方脚本
如果是图方便,或者碰到不熟悉的系统,可以使用以下命令安装:
1 | bash <(curl -sSL https://linuxmirrors.cn/docker.sh) |
使用CERNET MirrorZ 302 优选 Docker-CE 镜像:
1 | bash <(curl -sSL https://linuxmirrors.cn/docker.sh) --source mirrors.cernet.edu.cn |
面板安装
如 1Panel,安装脚本可以帮你自动安装好 Docker,并配置 Docker Hub 镜像,非常省心。
Docker Desktop
官方最新版安装包,自行想办法下载:
https://docs.docker.com/desktop/release-notes/
福利: 这边我们提供 Docker Desktop 安装包镜像,版本见
Version.txt
:https://dl.xrgzs.top/%E8%BD%AF%E4%BB%B6/Docker/Desktop
密码:为了避免滥用,访问 url.xrgzs.top/pswd 页面最底下获取
Windows 安装 Docker 有三种后端,分别为 Hyper-V
、WSL2
、Windows
,推荐使用 WSL2
。
先安装WSL2:
1 | wsl.exe --install |
然后再装 Docker Desktop 即可。
注册表镜像
不定期更新
国内 Docker 服务状态 & 镜像加速监控:https://status.1panel.top/status/docker
CNIX 粤港澳大湾区一体化算力服务平台:https://m.ixdev.cn
建议设置多个镜像,优先设置速度快的,拉取失败会自动换下一个
请先测试链接是否能够打开(报40x正常),然后再使用
注意事项:
- 部分镜像的
latest
标签可能较老,请尽量带版本号拉取。 - 不建议用于生产环境,且生产环境建议固定版本号并备份镜像到本地。
- 对于使用第三方镜像造成的后果,与本人无关,请尽量选择可信镜像。
搭建
薅得多会跑路,能自建更好,此处不提供方法,自行 GitHub / 谷歌 / 必应 / 微信搜一搜。
设置方法
从面板修改
1Panel、DSM、fnOS等可从面板修改:
fnOS 的做法是将你设置的镜像 unshift
插入到 registry-mirrors
这个 Array
的首位。
其他管理面板大同小异,如果没找到就是不能直接改。
直接改配置文件
iStoreOS(OpenWrt)的 docker 配置文件可能在到 /etc/config/dockerd
,并且格式与上方不相同,请自行修改!
部分 docker 配置文件可能还包含其他内容,如工作路径等,需要自行修改,请勿直接替换!
如果未安装管理面板,或管理面板改不了,可以执行以下命令:
1 | sudo mkdir -p /etc/docker |
Podman
Podman 和 Docker 的区别:
对比项 | Podman | Docker |
---|---|---|
架构 | 无守护进程,直接与容器运行时(如 runc )交互 |
客户端-服务端架构,依赖后台守护进程 dockerd |
Root 权限 | 默认支持 Rootless 模式(普通用户可直接运行容器) | 传统模式需 Root 权限,后续支持 Rootless(需配置) |
安全性 | 更高(无守护进程 + Rootless 默认),减少攻击面 | 守护进程以 Root 运行,存在潜在风险(Rootless 需手动启用) |
镜像管理 | 完全兼容 Docker 镜像,支持 Docker Hub/私有仓库 | 原生支持 Docker 镜像,生态成熟 |
CLI 兼容性 | 命令与 Docker CLI 高度兼容(如 podman run ≈ docker run ) |
CLI 为行业标准,Podman 反向兼容其语法 |
Systemd 集成 | 原生支持生成 Systemd 单元文件(podman generate systemd ) |
需第三方工具或手动配置 Systemd 服务 |
镜像构建 | 支持 Dockerfile 及 podman build ,集成 Buildah(更灵活的构建) |
使用 docker build ,依赖 Dockerfile |
容器编排 | 依赖 Podman Compose 或 Kubernetes(无内置 Swarm) | 内置 Docker Swarm,成熟但逐渐被 Kubernetes 取代 |
资源消耗 | 无后台进程,空闲时资源占用更低 | 守护进程常驻,占用一定内存/CPU |
网络模型 | 使用 CNI(容器网络接口),与 Kubernetes 兼容 | 自有网络模型(如 bridge 、host 等) |
存储 | Rootless 模式下,数据存储在用户目录(如 ~/.local/share/containers ) |
默认使用 /var/lib/docker (需 Root 权限) |
Pod 支持 | 原生支持 Pod(多容器组,类似 Kubernetes Pod) | 需通过 Docker Compose 模拟多容器组 |
日志管理 | 依赖 Systemd Journal 或第三方工具 | 内置多种日志驱动(如 json-file 、syslog ) |
Windows/macOS | 通过虚拟机或 WSL2 支持,体验有限 | 提供 Docker Desktop,原生支持良好 |
生态系统 | 社区增长中,红帽(Red Hat)主导,适合 RHEL/CentOS 环境 | 成熟,广泛支持,第三方工具丰富 |
文档:https://podman.io/docs/installation#registriesconf
由于支持 rootless 模式,会涉及到两种配置文件路径:
全局配置文件:
/etc/containers/registries.conf
用户配置文件:
~/.config/containers/registries.conf
Podman 比 Docker 更智能,可以对镜像的前缀进行自动替换:
1 | cp -f /etc/containers/registries.conf /etc/containers/registries.conf.bak |
(可选)CF 优选 IP
CF Workers 默认分配的部分线路可能较差,导致单线程拉取镜像较慢(不能只看延迟),需要自行优选
不会优选可以直接 ping download.yunzhongzhuan.com
,选择一个延迟低的 IP 添加到 Hosts 中:
1 | cat >> /etc/hosts << EOT |
旁路由劫持
如果懒得配置镜像,且有旁路路由,可以通过主路由 DNS劫持 + 静态路由 的方式实现免镜像加速,下层设备无需更改网关
关键参数:
1 | domain:docker.io 54.236.113.205 |
KSpeeder
多镜像并发下载,动态负载均衡,断点续传支持,Docker镜像代理服务
Docker镜像加速专家KSpeeder:https://kspeeder.istoreos.com/