iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 27
0
Software Development

.Net微服務輕旅行30天系列 第 27

Day 27: 微服務的封裝 Docker -- 基本操作

今天是docker的基本學習, 有經驗的朋友就可以省下您寶貴的時間了XD

環境設定是一件很煩人的事

在不同的電腦安裝東西其實很麻煩,東邊缺一個SDK/runtime/complier, 西邊一個環境變數把Production設成Dev。在微服務的技術異質性之下,如果使用不同框架的技術下加上大量的微服務實例,安裝跟設定環境基本上就是個噩夢。利用虛擬化技術來確保環境設置一致,對部署是非常重要的。

Virtual Machine vs docker

更輕量化的虛擬技術,更快的執行速度,超多現成的環境設置(image)。譬如我想要玩MongoDB,直接下載後docker run,就可以使用了,完全不用安裝MongoDB,從下載到使用的速度很快。

名詞定義

container: docker運作的單位,基本上就是一個process
image:用以建立container的樣板
docker hub: 放image的地方

常用的Docker指令

  • docker -help: 列出docker指令

  • docker -version(or -v): 取得版本

  • docker info: 取得本機電腦上的docker engine資訊

  • docker search: 利用關鍵字在Docker hub搜尋image
    https://ithelp.ithome.com.tw/upload/images/20180115/20107867QbWYE69nI3.png

  • docker pull: 從Docker Hub取得images到電腦上
    https://ithelp.ithome.com.tw/upload/images/20180115/20107867kV58F2IwuJ.png

  • docker create: 創建一個container但是不啟動

  • docker images: 列出在電腦上的images

  • docker ps: 列出已經啟動的containers

  • docker ps -a: 列出所有的containers(包含停止的)
    https://ithelp.ithome.com.tw/upload/images/20180115/201078670lndLEOtpm.png

  • docker run -p 5555:27017 -d mongo:
    run 藉由mongoDB的image創建container,啟動container,
    -p:將container在port 80上提供的服務,對應到localhost的port 5555,在這個例子container裡面的MongoDB預
    設的port是80,而在container外面可以藉由localhost:5555連結到MongoDB
    https://ithelp.ithome.com.tw/upload/images/20180115/20107867Ew66Nhanzb.png
    -d:將container在背景執行,這樣不會主動印出log
    https://ithelp.ithome.com.tw/upload/images/20180115/20107867X6eLO040pu.png

  • docker start: 啟動停止的container,跟run不同的是run會創建新的container,而start只會能啟動已經創建好的container

  • docker stop: 停止運行中的container

  • docker logs: 使用docker run -d的情況下,container會在背景跑所以如果有log的情況下是不會顯示的,可以利用-docker logs把歷史的log資訊調出來

  • docker rm: 移除停止的docker


上一篇
Day 26: 叫郵差跟新人幫你測試Web API(2)
下一篇
Day 28: 微服務的封裝 Docker -- dockerfile自製image
系列文
.Net微服務輕旅行30天30

尚未有邦友留言

立即登入留言