既然我們已經構建了一個映象了,讓我們把它分享給其他人吧!
要分享docker映象,必須使用docker登錄檔。
預設登錄檔是 Docker Hub,可以自行搜尋對應網站。我們到目前為止用過的所有映象也都是從這裡來的。
建立一個庫
為了把一個映象推送到登錄檔中,我們首先需要在Docker Hub上建立一個庫。
1、登入 Docker Hub 。網址請自行搜尋,找不到也可發我私信詢問。
Docker Hub主頁
2、點選 Create Repository 按鈕
3、至於庫的名字,使用 getting-started 。確保可見性是 Public 。
4、點選 Create 按鈕
頁面右邊,能夠看到以 Docker commands 命名的段落。
它給出了一個範例命令,你之後會需要執行這個命令來往倉庫做推送。
推送映象
1、在命令列中,試著執行剛才看到的 Docker Hub 上的push命令。教程裡,命令中包含了docker,我的命令列中包含了krave。這分別是我們各自的名稱空間。你務必也要記得把名稱空間替換成你自己的名稱空間哦。
docker push docker/getting-started
但是為什麼命令會失敗呢?push命令會尋找以 docker/getting-started 命名的映象,但是失敗了,沒有找到。如果你執行 docker image ls 的話,你也找不到。
要解決這個問題,我們需要把之前構建的映象做tag操作,給這個映象另一個名字。
2、使用
docker login -u 你-的-名-字
登入Docker Hub
3、使用 docker tag 命令給 getting-started 映象起個新名字。記得把
你-的-名-字
替換成你的docker ID。比如我就把它替換成了krave
docker tag getting-started 你-的-名-字/getting-started
4、再試一次push命令。如果你從Docker Hub的網站上直接複製下來的話,你可以把 tagname 那部分去掉,因為我們沒有給映象名加標籤。如果不指定標籤的話,docker會使用 latest 標籤。
docker push 你-的-名-字/getting-started
在一個新例項上執行我們的映象
既然我們已經構建了映象,並把映象推送到了登錄檔中,讓我們在一個嶄新的例項上,試著執行一下我們的應用看看。這個新例項從未見過這個容器映象。我們會用到 Play with Docker。
1、網頁瀏覽器訪問 Play with Docker。如果
搜不到
網址的話,可以私信問我。
2、使用 Docker Hub 賬號登入。
3、登入後點擊左側的 “+ ADD NEW INSTANCE” 按鈕。幾秒鐘之後,瀏覽器中就會開啟一個終端視窗。
4、在瀏覽器的終端視窗中,啟動剛剛推送過的應用。
docker run -dp 3000:3000 你-的-名-字/getting-started
你會看到映象被拖下來,並且啟動應用。
5、3000標籤跳出來以後,點選一下這個標籤。你應該能夠看到你修改過的應用了。如果3000標籤沒有出現,你可以點選 “Open Port” 按鈕,並輸入3000。
回顧
在這一章中,我們學習瞭如何透過把我們的映象推送到登錄檔中,進行分享。然後我們啟動了一個嶄新的例項(可以理解為虛擬機器),並且在這個例項上,運行了剛剛推送到登錄檔的映象。這在持續整合的管道中很常見,管道會建立映象並將其推送到登錄檔中,然後生產環境就能夠使用最新版本的映象了。
搞清如何分享了之後,回到上一章
一起學Docker4:如何更新正在執行中的應用
最後留下的問題:重啟應用之後,所有的待辦列表任務都丟失了。這很明顯並不是一個好的使用者體驗,接著就來看看怎麼樣可以重啟應用的同時,仍舊保留資料吧!
操作中如果遇到問題,歡迎下方留言或給我私信。記得關注,我們下期,不見不散。
對了,國慶快樂哈!