nullcache Space

方法一:docker save/load 大法

这是一种最简单的解决办法,但是需要你有自己的设备可以拉取镜像,并且能ftp连接到你要运行docker的环境。

比如你要在某环境直接运行下面这样的docker命令

docker run -d -p 3000:3000 \
   -e OPENAI_API_KEY=sk-xxxx \
   -e CODE=your-password \
   yidadaa/chatgpt-next-web

那我们大可以在自己的电脑上先 docker pull yidadaa/chatgpt-next-web 先把这个镜像拉下来,然后执行下面的命令

docker save -o [镜像文件名称.tar] [镜像的名称]

# 比如这里应该是
docker save -o chatgptnext.tar yidadaa/chatgpt-next-web

然后接下来我们ftp连接到目标服务器,先把刚才生成的文件拖到服务器里,执行下列命令

docker load -i [刚才拖上来的文件的路径]

# 比如这里应该是
docker load -i chatgptnext.tar

这时候我们就发现了,这时候镜像已经导入到无法连接docker的服务器了,可以通过 docker images 查看。那么接下来我们可以再次执行 docker run 命令来运行了。

这种情况对目标服务器是内网服务器同样适用,以及如果我们是用docker-compose.yml 启动docker的,也是同理,一个个load镜像即可,多次使用可以写个sh脚本

方法二:搭建docker镜像地址

可能有效的临时地址

前提:拥有一个自己的域名,不贵,便宜的几块钱一年。相比方法一都是一劳永逸的

首先本方法,教的是如何自己搭建docker镜像地址,但我们当然可以白嫖别人搭建好的。比如我这里有一个1panel面板提供的加速地址,应该长期可用, https://docker.1panel.live 。如果不可用或者变动了,可以去官网的这里查看 👉 1panel官方加速域名

然后我们就可以略过下面所有的步骤,来到本方法最后一小步的 最终配置步骤,把这个地址填进去即可

cloudflare上的准备

下面的步骤没有一张图,如果实在想看图,可以直接移步去看这个博文 👉 https://www.wanpeng.life/2953.html,建议结合着看,但本教程部分解释更加详细

首先都是要注册cloudflare账号,cloudflare是一个国外的著名cdn提供商,非常之nb,提供了大量的免费服务,我们今天就要用到它的cloudflare worker功能 👉 https://dash.cloudflare.com/sign-up

其实也不一定要有域名,只是说我们如果用了它的免费域名,那个域名很可能是被墙或者污染的,结果还是访问不通

那么首先添加域名,去腾讯云或者阿里云或者国外的namecheap,godaddy之类的平台买一个域名,然后打开cloudflare,点击 网站 - 添加站点,然后按照它的指示一步步修改dns,最后就可以把这个域名托管到cloudflare了。如果想用自定义域名的cloudflare worker,必须要把域名托管到cloudflare

添加完后可能需要数小时的等待,然后我们来配置 cloudflare worker。点击侧边栏的 Workers 和 Pages,点击创建,然后点击创建worker,我们可以修改名字,但是此时我们是无法修改代码的,先点击部署

找到我们刚才创建的worker,点击编辑代码,把worker.js的代码删光,替换为 https://gitee.com/ccschan/CF-Workers-docker.io/blob/main/_worker.js 里的代码,

注意这里一定要修改第八行或者说 let workers_url = 'https://你的域名' 这里的定义,把你的域名这几个字修改为自己的域名的子域名,然后点部署按钮,可能要多按几次。这里的子域名是指你要分配给这个服务,自己自定义的一个域名。比如我这里想设置为 docker.caibi.me

回到上一页,选择设置-自定义域,然后按照要求选择一个子域名给worker,和上一行的需要保持一致,我这里即 docker.caibi.me,请自行替换为自己的。此时我们cloudflare上的准备已经全部完成了

最终配置

此时我们打开我们的目标服务器或者环境,以debian系统为例(其他系统可以自行搜索怎么配置 docker镜像地址),注意把下面的 https://docker.1panel.live 替换为自己搭建的或者最上面所说的公开镜像地址,要有http/https的前缀!

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.1panel.live"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

此时镜像应该是可以拉取的了,大功告成,一切如常的使用docker即可

方法三:搭建自己的docker仓库

此方法需要一台能直接访问docker的服务器,同时对服务器的流量和空间有一定的需求,如果要问比起方法二有什么优点,那就是毕竟cloudflare worker是别人的免费服务,稳定性和限额上有一定限制,但是也是成本最低的方法了。

本方法适用于对稳定性和速度(如果网速够)有极高要求的。

摆了,直接看别人的教程吧 👉 https://www.wanpeng.life/2826.html

avatar
nullcache
「此处应有一句格言」
2
文章数
github
掘金