@sam Sam,我的公司现在正在阻止 docker hub。我在多个环境中运行 Discourse 的 Docker,需要进行升级。当然,它失败了:
Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client
Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client
Unable to find image 'discourse/base:2.0.20230502-0058' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client.
对我来说,最简单的升级方法是使用同一网络之外的另一台机器,下载最新的 discourse 基础镜像……然后以某种方式将其拉取或推送到需要升级的机器上。然后以某种方式强制 Discourse 或启动器在本地查找,而不是尝试从 Docker hub 拉取……我见过各种帖子,几乎让我觉得这可能有效,但没有明确的说明。我该如何做到这一点?
Falco
(Falco)
2023 年5 月 8 日 01:26
2
docker save 和 docker load 可以帮助你实现这一点。
@Falco 您能否提供一些具体的命令示例,说明如何保存和加载……例如,保存什么、保存到哪里以及加载的完整命令?
@Falco - 非常感谢,我期待桌面示例……希望我理解得正确,因为我担心我的主机站点被“升级”而不仅仅是“升级”。
我有一个过时的公司 discourse docker 站点,其中包含我因公司规定等原因无法移出公司的某些信息。有 4 个不同的站点……我们称它们为:np.falcoisgreat.com 、stg.falcoisgreat.com 、tst.falcoisgreat.com 和 www.falcoisgreat.com ,它们都落后于大约 4 个小版本……当启动器尝试获取最新的 Docker 基础映像时,它们已无法访问 docker hub。
因此,在现实世界的互联网自由中,我启动了一个新的带有 discourse docker 的 Ubuntu 框,只是为了下载最新的 Discourse Docker 基础映像(实际上在 https://discourse1.codeplus.cloud )——现在我的意图是获取新映像,不包含内容,不包含任何东西,然后使用 docker save 将其 tar 起来,然后使用 curl 或 sftp 将该 tar 文件拉到 np.falcoisgreat.com ,然后使用 docker load?
我不知道具体细节,我会去查看和阅读,但我担心的是我将擦除“np.falcoisgreat.com ”的当前内容和配置——我当然会进行备份,但对我来说,最好知道一种不擦除任何内容的方法。请确认此解决方案是否旨在实现我的预期?
谢谢!
Falco
(Falco)
2023 年5 月 8 日 15:46
7
Be:
Do:
ssh root@server1
docker pull discourse/base:2.0.20230502-0058
# 如果 server1 可以访问 server2
docker save discourse/base:2.0.20230502-0058 | bzip2 | ssh root@server2 docker load
# 等待其完成并退出 server1
ssh root@server2
cd /var/discourse
./launcher rebuild app
# 如果 server1 无法访问 server2
docker save -o /tmp/discourse-base-image.tar discourse/base:2.0.20230502-0058
# 通过 U 盘、ftp、软盘等将文件传输到 server2
ssh root@server2
docker load -i /tmp/discourse-base-image.tar
cd /var/discourse
./launcher rebuild app
2 个赞
pfaffman
(Jay Pfaffman)
2023 年5 月 8 日 16:46
8
这很酷。我不知道那个。
唯一的技巧就是知道如何以及何时更改 discourse/base:2.0.20230502-0058。
我认为这只是
cd /var/discourse
git pull
DISCOURSE_BASE=$(grep -e ^image= $DISCOURSE_DOCKER_SRC/launcher|cut -d'\"' -f2)
docker pull $DISCOURSE_BASE
然后继续使用 save 命令。
1 个赞
感谢 @Falco ,到目前为止一切顺利。两个环境已升级!
2 个赞
system
(system)
关闭
2023 年6 月 7 日 22:18
10
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.