「大家好,我是熊貓,你的nas領(lǐng)航員。NAS不只是存儲(chǔ)那么簡(jiǎn)單,數(shù)碼也可以是生活,關(guān)注我,給你的生活加點(diǎn)'技'趣!」
引言
自從國(guó)內(nèi)的各大Docker鏡像源被下架后,NAS想要拉取個(gè)鏡像真的不容易,不過(guò)網(wǎng)友們可不是吃素的,此路不通那就換一條路。于是現(xiàn)在有各種辦法能讓我們拉取鏡像,例如通過(guò)套CF的形式,實(shí)現(xiàn)拉取鏡像,不過(guò)域名容易被DNS污染導(dǎo)致不能用;還可以通過(guò)自建鏡像站的形式,不過(guò)需要什么鏡像都需要先去同步到自己鏡像源,比較麻煩;或者干脆直接讓NAS出國(guó)也行,但是這會(huì)導(dǎo)致NAS上的其他容器或者項(xiàng)目也出國(guó)。
那么有沒(méi)有一種方法,既可以讓NAS不出國(guó),又能實(shí)現(xiàn)不怕DNS污染,同時(shí)拉取鏡像也方便快捷的方式呢?還真有,這里感謝粉絲「姜不吃」提供的信息來(lái)源,同時(shí)感謝作者「wzshiming」的項(xiàng)目。
部署過(guò)程
首先我們需要在「NAS上養(yǎng)一只小貓」,同時(shí)還需要這只貓有對(duì)應(yīng)的「貓糧」。貓很好養(yǎng),但是貓糧怎么來(lái)就需要大家自行想辦法了,不過(guò)我相信既然都玩上NAS以及Docker了,那么貓糧應(yīng)該不缺。
準(zhǔn)備好養(yǎng)貓的材料,docker-compose文件,內(nèi)容如下,其中「將貓改為小貓真名」就可以了。還要注意貓的端口以及路徑,根據(jù)自己環(huán)境來(lái)設(shè)置。
version: '3'
services:
貓:
container_name: 貓
image: laoyutang/貓-and-dashboard:latest
restart: always
logging:
options:
max-size: 1m
volumes:
- /volume1/docker/貓/config.yml:/root/.config/貓/config.yaml
ports:
- "18080:8080"
- "17890:7890/tcp"
- "17890:7890/udp"
這里的「config.yaml文件就是貓糧」,這個(gè)看你在哪個(gè)地方領(lǐng)養(yǎng)的貓,直接去領(lǐng)養(yǎng)貓的地方拿貓糧就可以了。
貓和貓糧解決了之后啟動(dòng)容器,這時(shí)候就有一個(gè)貓窩了,貓窩的端口為18080,或者你定義的其他端口。如果你的貓糧小貓肯吃,那么貓窩中就能看到小貓每天出去玩的各種路徑了,這里就不一一展示了,接下來(lái)我們利用小貓拉取鏡像。
需要注意的事該項(xiàng)目最好用于個(gè)人使用,畢竟要用到你自己家里的帶寬,公開(kāi)的話估計(jì)會(huì)比較卡。準(zhǔn)備好docker-compose文件,參考圖中或者參考熊貓這里的設(shè)置,其中「environment環(huán)境變量」的值為小貓出去玩的路徑和號(hào)碼,根據(jù)自己情況更改,例如熊貓這里就是:
version: '3'
services:
crproxy:
image: ghcr.io/daocloud/crproxy/crproxy:v0.8.0
container_name: crproxy
restart: unless-stopped
ports:
- 4321:8080
- 4322:8080
command: |
--acme-cache-dir=/tmp/acme
--acme-hosts=*
--default-registry=docker.io
tmpfs:
- /tmp/acme
# 非必須, 如果這臺(tái)服務(wù)器無(wú)法暢通的達(dá)到你要的鏡像倉(cāng)庫(kù)可以嘗試配置
environment:
- https_proxy=http://IP:9870
- http_proxy=http://IP:9870
如何使用
配置好所有之后我們啟動(dòng)容器,這時(shí)候嘗試docker pull鏡像的時(shí)候可以這樣:docker pull 127.0.0.1:4321/idootop/feiyu:latest。你會(huì)發(fā)現(xiàn)速度飛快(根據(jù)你「貓的品種」決定),同時(shí)拉取暢通無(wú)阻。
此時(shí)我們就已經(jīng)可以拉取鏡像了,如果你有域名,那么我們還可以通過(guò)域名+端口的形式拉取鏡像,例如如果熊貓有一個(gè)panda.com的域名,那么就可以通過(guò)docker pull panda.com:4321/idootop/feiyu:latest,當(dāng)然前提是你將其域名做了解析。
不過(guò)需要注意的是,目前測(cè)試下來(lái)發(fā)現(xiàn)「群輝、極空間暫不支持端口情況下作為鏡像源」使用,但威聯(lián)通目前是支持的(威聯(lián)通YYDS)。同時(shí)第三方的Docker容器管理,大都支持帶端口的情況下拉取鏡像,例如portainer、1Panel這一類(lèi)。
當(dāng)然了有沒(méi)有辦法解決呢?自然也是有的。進(jìn)階玩法就是通過(guò)將域名綁定到render上實(shí)現(xiàn)使用80和443端口,render每個(gè)月免費(fèi)流量為100G,用來(lái)拉取鏡像什么的也是完全夠用了,此方法可以參考項(xiàng)目「k0baya/QLonRAILWAY」。
這時(shí)候我們就可以直接使用我們的域名來(lái)拉取鏡像,不需要加端口什么的了,同時(shí)這個(gè)網(wǎng)址也可以直接添加到任意NAS的鏡像源設(shè)置中去。
切記「不要將域名公開(kāi)」,目前網(wǎng)友自建的大部分鏡像源都因?yàn)槭褂萌颂啵聪匏僖搓P(guān)閉了,所以想要自己體驗(yàn)高速,就不要公開(kāi)。當(dāng)然如果你有幾個(gè)好大兒和你一樣都玩nas,那么可以一起用。
總結(jié)
本期內(nèi)容稍微比較隱晦,如果有不懂的,不要來(lái)問(wèn)。懂的自然懂,不懂的問(wèn)我我也不能回答。
以上便是本期的全部?jī)?nèi)容了,如果你覺(jué)得還算有趣或者對(duì)你有所幫助,不妨點(diǎn)贊收藏,最后也希望能得到你的關(guān)注,咱們下期見(jiàn)!
作者聲明本文無(wú)利益相關(guān),歡迎值友理性交流,和諧討論~
,