在不同的電腦安裝東西其實很麻煩,東邊缺一個SDK/runtime/complier, 西邊一個環境變數把Production設成Dev。在微服務的技術異質性之下,如果使用不同框架的技術下加上大量的微服務實例,安裝跟設定環境基本上就是個噩夢。利用虛擬化技術來確保環境設置一致,對部署是非常重要的。
更輕量化的虛擬技術,更快的執行速度,超多現成的環境設置(image)。譬如我想要玩MongoDB,直接下載後docker run,就可以使用了,完全不用安裝MongoDB,從下載到使用的速度很快。
container: docker運作的單位,基本上就是一個process
image:用以建立container的樣板
docker hub: 放image的地方
docker -help: 列出docker指令
docker -version(or -v): 取得版本
docker info: 取得本機電腦上的docker engine資訊
docker search: 利用關鍵字在Docker hub搜尋image
docker pull: 從Docker Hub取得images到電腦上
docker create: 創建一個container但是不啟動
docker images: 列出在電腦上的images
docker ps: 列出已經啟動的containers
docker ps -a: 列出所有的containers(包含停止的)
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
-d:將container在背景執行,這樣不會主動印出log
docker start: 啟動停止的container,跟run不同的是run會創建新的container,而start只會能啟動已經創建好的container
docker stop: 停止運行中的container
docker logs: 使用docker run -d的情況下,container會在背景跑所以如果有log的情況下是不會顯示的,可以利用-docker logs把歷史的log資訊調出來
docker rm: 移除停止的docker