Eric
: 介紹完 Docker 的背景與相關名詞後,直接進入主題吧。
吉米
: 是啊,先教我一下 Docker 的基本操作方式。
Eric
: 沒問題,我們先來安裝 Docker 吧。
由於 Docker 政策的因素,是無法直接在 Docker 官網下載 Docker CE。必需經過 Docker store ,才能下載 Docker CE 。
Docker Store 必需登入帳戶,才能進行下載動作。如果沒有帳戶,記得申請帳戶。筆者選擇 Desktop Docker 中 Docker for windows。
安裝時,不用額外設定,只要順著指示步驟進行安裝,就能完成設定。
要注意的是,如果準備安裝 Docker for Windows 的作業系統,不是 Windows 10 Pro 、 Enterprise 、Windows Server 2016 ,會出現以下的畫面,然後就停止安裝動作。
但是,要補充一點,在 Docker 完裝完成後,假若機器是第一次安裝 Docker ,會出現 close and log out
的按鈕:反之,只會出現 close
的按鈕。筆者沒注意到,結果直接登出,寫到一半的文章,直接說 Bye-byte。
當啟用 Docker for Windows 時,Docker 會自行確認所需的技術或功能是否有開啟支援。若未開啟相關功能,Docker 會詢問是否要開啟。
同意由 Docker 幫助開啟功能的話,當然會自動重新開機。反之,Docker 會直接告知無法啟動 Docker。
在啟動後,Docker 會要求使用者登入。
實際上,登入與否的差異,只差在能否存取 Docker Hub 的 Repositories 。
在本機,Docker 還是可以正常操作。
docker --version
docker version
這兩個指令,都可以取回目前 docker 的版本資訊。其中docker version
取回的資料較為詳細。
我們使用 docker 來運行軟體時,一定要指定 docker image,讓 docker 建立一個基於 image(定義) 的 container(程序) 。
運用 docker image
配合參數,就可以對 image 進行操作。
# image list
docker image ls
如果不確定目前存在那些 image ,可以用這個指令,產出 image 的列表清單。可以檢視到 image 的名稱、建立時間與大小、
# create/build image
docker image build [dockerfile path]
如果沒有所需要的 image ,也可以自己建立一個 image。而建立 image 所需要的參數設定,是使用 YAML 格式所撰寫的 Dockerfile。
關於 dockerfile 的設定,後面會仔細說明。這邊就先略過,不多加說明。
# 從 remote repository (docker hub) 下載 image
docker pull hello-world
當然,可以使用其他人己經創建的 Image,目前最大的公開 Repository 就是 Docker Hub。
我們可以從 Docker Hub 找到許多現成的 Image。
# 移除 image
docker image rm hello-world
若 image 己經確定不會再用到,也可以將其移除。
下面是筆者針對 image 的操作畫面。
前面,筆者從 Docker Hub 取得 busybox 的 image,那我們來執行 busybox 這個 image。
# run docker image
docker run IMAGE
當 image 己經準備完成,接著就啟動 container 了。
使用 docker run busybox
的方式,告知 Docker Engine ,以 busybox Image 啟動 container。
# container list
# method 1
docker ps
# method 2
docker container ls
在啟動 container 後,可以使用 docker ps
進行確認 container 是否有被啟動。
可是查到的資料,看不到剛剛啟動的 busybox 。
因為 busybox 在完成動作後,就會直接結束。而 docker ps
只會列出執行中的 container。
# show all containers. include STATUS=exited
docker ps -a
所以,利用 -a
將所有的 container 都列出來後,就可以看到使用 busybox image 所建立的 container。
# restart container
# method 1
docker start CONTAINER
# method 2
docker container start b4bb88e021b9
假若要執行的 container 己經存在,可以運用 start
來啟動己經停止的 container。在 命令中的 CONTAINER,可以輸入 CONTAINER ID 或 Name。
# remove unused data
docker system prune
以筆者以言,看到己經執行完成的 container 一直存在清單之中,就覺得怪不舒服。
所以可以用 docker system prune
,將沒有使用的 container 刪除。
吉米
: Docker 現在也成功安裝與執行了,那接下來的重點,就是把公司現在的服務轉成 Docker Image。
Eric
: 沒錯,不過接下來的工程有點多,先休息一下,下午再繼續如何?
吉米
: 沒問題。
<< 待續 >>