使用github作為docker鏡像存儲(chǔ)倉(cāng)庫(kù)
docker因?yàn)槠浔憷院透綦x性已經(jīng)成為日常開發(fā)中非常常見的技術(shù),使用docker可以把我們的編譯開發(fā)環(huán)境打包,在任何機(jī)器上只要把docker鏡像來取下來運(yùn)行,不需要重復(fù)搭建編譯開發(fā)環(huán)境。
使用過docker的用戶都知道,docker的鏡像倉(cāng)維護(hù)設(shè)計(jì)得跟代碼維護(hù)類似,docker的很多命令與git的命令基本一致,比如pull、push、add、tag、commit,引入容器后,你會(huì)發(fā)現(xiàn)管理環(huán)境就像開發(fā)代碼一樣優(yōu)雅。
在內(nèi)網(wǎng)環(huán)境里,我們可以自己搭建公共鏡像倉(cāng),并分享同步自己的開發(fā)環(huán)境鏡像,大家一起使用,一人維護(hù),全公司受益。
而在外網(wǎng)環(huán)境里,其實(shí)也有一些公共鏡像倉(cāng)庫(kù),我們期望能登錄查看自己的鏡像,切換到不同的機(jī)器時(shí),我可以快速的拉取我的鏡像環(huán)境,類似這樣功能的公共鏡像倉(cāng)有dockerhub,不過很可惜,國(guó)內(nèi)已被墻,無(wú)法訪問,有梯子都不行。
那有沒有什么替代方式呢?答案是肯定的。
我們說docker鏡像管理就像是git管理代碼一樣優(yōu)雅,那么作為git最流行的倉(cāng)庫(kù)網(wǎng)站github是否支持上傳docker鏡像倉(cāng)呢?答案是支持,github的package支持上傳docker鏡像。
每個(gè)github用戶有一個(gè)package,登錄github后即可看到。而我們要上傳自己的鏡像到github呢,需要做如下幾個(gè)操作:
- 登錄github的docker鏡像倉(cāng)庫(kù)(docker login)
# -u 后面跟github用戶名
# -p 后面跟github的token,也可以不用token,用密碼也行
docker login docker.pkg.github.com -u username -p token
當(dāng)然docker.pkg.github.com一般不常用,常用的是ghcr.io,其登錄方式類似
# username和token需要換成自己的
docker login ghcr.io -u username -p token
- 為自己的鏡像添加tag(docker commit)
這里的tag有一定的規(guī)則在里面,其形式類似于這樣:ghcr.io/username/repo_name/image_name:tag,比如我的實(shí)例如下:文章來源:http://www.zghlxwxcb.cn/news/detail-816941.html
docker commit -a "growdu" -m "add coder to sudoers,map hosts to solve can't visit github" 973641cea3f7 ghcr.io/growdu/oh-my-code/coder:v1.2
- 推送鏡像到遠(yuǎn)程倉(cāng)庫(kù)(docker push)
到這里就可以把鏡像上傳,然后在其他機(jī)器拉取鏡像開發(fā)了。文章來源地址http://www.zghlxwxcb.cn/news/detail-816941.html
docker push ghcr.io/growdu/oh-my-code/coder:v1.2
- 拉取鏡像進(jìn)行開發(fā)(docker pull)
docker pull ghcr.io/growdu/oh-my-code/coder:v1.2
到了這里,關(guān)于使用github作為docker鏡像存儲(chǔ)倉(cāng)庫(kù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!