1. 程式人生 > >Docker教程:docker遠端repository和自建本地registry

Docker教程:docker遠端repository和自建本地registry

Docker有一個類似版本管理倉庫(Repositry)的東西,有docker.io提供的官方倉庫(index.docker.io,相當於github),也可以自建(叫docker-registry,相當於自己搭建一個小型github)。

比較 Docker 和 Git:映象管理設計理念

push到docker hub

註冊docker

docker官網建立並激活一個Docker賬戶,以便我們能使用Docker Hub,Docker Hub是Docker的核心庫,它幫助我們管理Docker及其元件。它還提供了主映象,使用者授權,自動化的映象和像build triggers和web hooks等工作流工具,還有對GitHub和BitBucket整合等。

dockerpush命令

Push an image or a repository to the registry將映象推送到registry

docker push NAME[:TAG]

如果是要push到docker hub中,注意生成映象的命名
pi:~$docker push python-ubuntu
FATA[0000] You cannot push a "root" repository. Please rename your repository to <user>/<repo> (ex: <user>/python-ubuntu) 
用python-ubuntu就不行,因為它push到docker hub中時,是推送到相應使用者下,必須指定使用者名稱。譬如我的使用者名稱是pikapika,則新生成的本地映象命名為:docker push pikapika/python-ubuntu:v1,其中v1是tag,可不寫,預設是latest 

docker tag命令-為image打標籤:對映象進行重新命名

tag 為image建立名字或修改名字    tag      Tag an image into a repository

tag也可以讓docker中的多個tag連結到同一個image id上
Usage: docker tag [OPTIONS] IMAGE[:TAG][REGISTRYHOST/][USERNAME/]NAME[:TAG]Tag an image into a repository
  -f,--force=falseForce

該命令可以為以存在的重複命名,並不執行重新命名,而是保留原有命名基礎上,新增一個新的名稱,看上去像新添加了一個image

Note: 可能通過docker rmi -f python-aptget-ubuntu刪除掉這個tag,但是可能會刪除99b對應的兩個image。沒試過下次。

push到dockerhub上

docker push pikapika/***


pull成功後就可以在docker上看到自己push的repository了:


這樣任何人都可以通過docker pull pikapika/python-apt-ubuntu來pull你push的image開發環境了。

Note: docker上只有1個免費的private repositories,public沒有限制。可以在Account Settings裡面設定push到private還是public,預設public。當然可以進入public repository將其改為private,也可以刪除。

關聯github

create > Create Auto-build > 新增github專案到其中,沒怎麼用過,下次寫

這樣可以用命令docker pull pikapika/scrapyenv拉取當前專案的docker images環境了。

雲端自動獲取Github程式碼build,拯救了牆裡的碼農。不知道是不是這樣?

自建docker倉庫

ref: