使用Docker構建你的第一個服務

Mooooon發表於2017-12-14

使用Docker構建你的第一個服務

1. 感受一下Docker的便捷

專案原始碼 https://github.com/MoonShining/dockernize-grape-helloworld

clone下來以後執行,cd到專案目錄下,執行

docker build -t api-sample .
docker run -p 8080:8080 api-sample:latest
複製程式碼

就可以訪問localhost:8080看到效果了.

2. 具體步驟

  • 使用你喜歡的語言寫一個能輸出hello world的HTTP服務
  • 告訴docker你需要如何構建這個服務(Dockerfile) 因為Ruby程式設計師不多,我就不講解ruby程式碼了,只需要知道一點.

在clone專案以後執行

bundle install
rackup -o 0.0.0.0 -p 8080
複製程式碼

這樣就可以在本地直接執行起Ruby版本的hello world了.

3. Dockerfile

FROM ruby:2.3.1
LABEL maintainer "zhoubjnb@163.com"
WORKDIR /app
ADD . /app
RUN bundle install
EXPOSE 8080
CMD ["rackup","-o","0.0.0.0","-p","8080"]
複製程式碼

這個配置檔案主要做了幾件事

  1. 必須指定一個Base Image,我們用ruby:2.3.1這個映象
  2. 本映象的維護者資訊
  3. 設定一個Docker映象中的工作目錄,作為接下來RUN和CMD指令的執行目錄
  4. 把當前目錄對映到容器中的/app
  5. 為Ruby工程安裝依賴
  6. 暴露容器的8080埠出來
  7. 在容器中執行rackup命令開啟服務

這樣,無論我們的底層系統是什麼,只要安裝了Docker,就可以很方便的執行程式,無需關心各種依賴

參考

  • 《微服務架構與實踐》 ThoughtWorks中的人寫的一本書,很空泛,不推薦閱讀...
  • Docker References(Dockerfile的各種指令意義) https://docs.docker.com/engine/reference/builder

相關文章