[Docker] 在 DockerHub 上分享自己的 image

2018/03/30 DevOps

前言

Docker Hub 是官方提供的 Docker Registry,也就是說我們開發者可以將我們自己製作的 docker image 上傳到平台和大家分享,跟 NPM Registry 的概念差不多。

教學

在開始時做之前尚未註冊 Docker Hub 的讀者可以先去註冊,在此平台中免費只提供一個私有專案,若還需要的的就必須付費。

1. Build Image(製作映像檔)

我們使用 docker-node-demo 當作範例來製作 Image,若對 Dockerfile 還很陌生的讀者可以先來參考這篇文章。

在專案目錄下跑 docker build -t User_Name/專案名稱 . (注意後面有.)就會根據 Dockerfile build 出你自己的 image,因為要上傳到 Docker Hub,所以在 build 時要加上自己的帳號名稱。

docker build -t User_Name/專案名稱 .

build 完後你可以使用 docker image 來檢查電腦中所有的 images

docker image
REPOSITORY                    TAG                 IMAGE ID            CREATED              SIZE
andy6804tw/docker-node-demo   latest              07c96b7cc073        About a minute ago   676MB
node                          latest              814364d36f69        23 hours ago         673MB

2. 上傳 Image 至 Docker Hub

首先要登入你的 Docker Hub 在終端機鍵入 docker login 輸入你的帳號與密碼。

docker login

登入成功後就能將 Image push 至 Docker Hub 了~

docker push User_Name/專案名稱

Automated Build 設定

如果覺得要每次手動 build image 並自己上傳到 Docker Hub 很麻煩的話,官方有提供 Automated Build 的功能,能夠與 GitHub 或 BitBucket 連動專案並偵測若有新的提交(push) Docker Hub 就會自動幫你 build image 並且發布。

1. 與 GitHub 連動

2. 選擇專案

連動成功後首先來選擇哪個 repo 建立 Automated Build,我們一樣使用這個範例 docker-node-demo 各位可以 Fork 此專案至你們的 GitHub 來跟著此教學示範。

3. Push 新版本到 Github 上

你可以點選 Build Settings 來設定自動 build 的時機,預設是偵測 master 主分支自動 build 一個 image:latest 與某個 branch 自動 build 一個 image:<branch name>

當我們在 GitHub 發布新的提交時你會會看到 Docker Hub 中的 Build Details 裡面多了一個正在 build 的 image。

以下是範例程式碼歡迎各位 Fork

GitHub: https://github.com/andy6804tw/docker-nodejs-tutorial

Docker Hub: https://hub.docker.com/r/andy6804tw/docker-nodejs-tutorial

Search

    Table of Contents