本地拉取Docker镜像打包导入远程服务器

起因是因为使用远程服务器拉取镜像时,由于网络问题一直拉不成功,使用国内镜像由于更新不及时,国内镜像没有最新的 docker 镜像。最后使用本地的计算机,通过代理下载最新的镜像后打包成 tar, 然后上传到远程服务器进行导入。

博主博客

起因

使用远程服务器拉代码会报一下错误。

[root@nukix RSSHub]# docker pull diygod/rsshub:chromium-bundled-2024-10-14
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

一、拉取镜像

可以先进入 dockerhub 查找需要下载的镜像, 然后选择对应的架构进行拉取。

在这里插入图片描述

使用命令 docker pull 镜像名:版本@摘要值 进行拉取,这里要注意根据需要下载的架构选择对应镜像的摘要值进行下载,不加摘要值会下载当前系统的镜像,可能不适合远程服务器架构。

nukix@MacBook-Pro ~ % docker pull diygod/rsshub:chromium-bundled-2024-10-14@sha256:ff4a5aa02f3df2a0b20ad1e5e9dfffef08aa7c7f1b5665af5db077d10ca79db6
docker.io/diygod/rsshub@sha256:ff4a5aa02f3df2a0b20ad1e5e9dfffef08aa7c7f1b5665af5db077d10ca79db6: Pulling from diygod/rsshub
302e3ee49805: Pull complete
f09acf3eb611: Pull complete
41ec6ae33593: Pull complete
e1068effa50f: Pull complete
0255ce87cb40: Pull complete
ec33c6e82ec0: Pull complete
c848b143ce12: Pull complete
256fcb80beb5: Pull complete
4f4fb700ef54: Pull complete
d18f8029719b: Pull complete
Digest: sha256:ff4a5aa02f3df2a0b20ad1e5e9dfffef08aa7c7f1b5665af5db077d10ca79db6
Status: Downloaded newer image for diygod/rsshub@sha256:ff4a5aa02f3df2a0b20ad1e5e9dfffef08aa7c7f1b5665af5db077d10ca79db6
docker.io/diygod/rsshub:chromium-bundled-2024-10-14@sha256:ff4a5aa02f3df2a0b20ad1e5e9dfffef08aa7c7f1b5665af5db077d10ca79db6

nukix@MacBook-Pro ~ % docker images
REPOSITORY  TAG IMAGE ID CREATED SIZE
diygod/rsshub <none>  c1f27ad1ee6f 6 hours ago 1.36GB

拉取完成后使用 docker images 命令可以查看下载后的镜像。

二、打包镜像

nukix@MacBook-Pro ~ % docker save c1f27ad1ee6f > ./rsshub.tar

使用 docker save 镜像ID > 路径 把镜像打包到指定路径下。

三、加载镜像

[root@nukix RSSHub]# docker load < rsshub.tar
8d853c8add5d: Loading layer [==================================================>]  77.83MB/77.83MB
998b55b01293: Loading layer [==================================================>]   21.5kB/21.5kB
4ff4e33e2042: Loading layer [==================================================>]  135.5MB/135.5MB
d741aa1acde2: Loading layer [==================================================>]   7.21MB/7.21MB
1129945e3488: Loading layer [==================================================>]  3.584kB/3.584kB
356ddc962e44: Loading layer [==================================================>]  1.536kB/1.536kB
98b50a20aa5f: Loading layer [==================================================>]  128.7MB/128.7MB
89f80732f40f: Loading layer [==================================================>]  565.8MB/565.8MB
5f70bf18a086: Loading layer [==================================================>]  1.024kB/1.024kB
6de60b6f87bc: Loading layer [==================================================>]  503.1MB/503.1MB
Loaded image ID: sha256:c1f27ad1ee6f9ea8f02b0b0dce5d3077912685517987eef68a8dfd8a63248c9a

[root@nukix RSSHub]# docker images
REPOSITORY                   TAG       IMAGE ID       CREATED         SIZE
<none>                       <none>    c1f27ad1ee6f   6 hours ago     1.36GB

把打包后的镜像传送到服务器端, 然后使用命令 docker load < 路径 加载打包后的镜像。加载完成后查看镜像, 可以看出 TAG<none>

四、修改标签

[root@nukix RSSHub]# docker tag c1f27ad1ee6f diygod/rsshub:chromium-bundled-2024-10-14

[root@nukix RSSHub]# docker images
REPOSITORY                   TAG                           IMAGE ID       CREATED         SIZE
diygod/rsshub                chromium-bundled-2024-10-14   c1f27ad1ee6f   6 hours ago     1.36GB

使用 docker tag 镜像ID 镜像名:版本 把标签修改为执行的名称。

在这里插入图片描述
如果使用 docker compose, 需要注意 TAG 对应上面设置的名称。

### 获或使用 ollama Docker 镜像 对于希望获 `ollama` 的 Docker 镜像的情况,通常有两种主要途径来实现这一目标。 #### 方法一:直接从仓库镜像 如果遇到网络状况良好且服务器能够顺利连接到远程仓库的情况下,可以直接利用 `docker pull` 命令来下载所需的镜像。然而,在某些情况下可能会遭遇加载缓慢甚至停滞不前的问题[^2]: ```bash docker pull ollama/ollama ``` 此命令将会尝试从未知源(默认为 Docker Hub)名为 `ollama/ollama` 的最新版本镜像文件至本地环境之中。 #### 方法二:通过 WSL 下载并导入镜像包 当面对上述方法不可行的情形时,可以考虑借助 Windows Subsystem for Linux (WSL) 来完成镜像的初步下载工作之后再将其转移给实际运行的服务端机器上进行后续处理。具体流程涉及先在具备较好互联网访问条件的工作站上执行下载动作,随后将得到的数据打包并通过适当手段迁移至目标主机内展开进一步的操作步骤。 一旦完成了镜像数据向目的设备的成功传输,则可以通过如下指令来进行该镜像档案的实际引入过程: ```bash docker load -i /path/to/exported/image.tar ``` 这里假设 `/path/to/exported/image.tar` 是之前已经准备好的 tarball 文件路径位置。 #### 启动容器实例 无论是采用哪种方式最终获得了想要使用的镜像资源后,都可以依照下面给出的例子创建一个新的基于所选镜像而来的容器实例,并指定必要的参数选项以便于应用程序正常运作[^3]: ```bash docker run -d \ -v ollama:/root/.ollama \ -p 11434:11434 \ --name ollama \ ollama/ollama ``` 这段脚本定义了一个后台模式下持续运行的新进程,同时设置了卷挂载以及端口映射关系确保外部可访问性和持久化存储需求得以满足。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nukix

如果觉得对你有帮助,欢迎打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值