Dockerfile:
設計一個基本的node.js的docker image。
整個建立過程就像疊積木一樣,需要有個底層的docker image(docker會幫忙到Dockerhub找我所指定的image和版號)做為執行環境,接著,在這環境之上要建立自己的專案,並建立能執行專案程式的相依的套件,最後加入一行啟動整個應用程式需要的執行命令,便完成了。
# 檔名 Dockerfile
FROM node:6.2.2 # 載入需要的執行環境
WORKDIR /app # 如果目錄不存在,自動建立建立工作目錄 /app
COPY . /app # 將電腦裡的專案資料複製到/app底下
RUN npm install # 下載相依的package
EXPOSE 3000 # container對外的port
CMD npm start # docker start後的執行指令
建立好後就可以透過docker指令建立映像檔
# 預設會直接去找Dockerfile這個檔名
docker build .
# 如需客製化檔名建立要加個-f參數
docker build -f <custom dockerfile name> .
---
# 將映像實例化一個容器有兩種方式
# 方法一透過映像檔的id
docker run <image-id>
# 方法二透過檔名
docker run -it <image-name>
---
# 透過外部的port對應容器內部的port
docker run -p 3000:3000 -it <container-name>
# 查詢log
docker logs <container-ID>
# 刪除某一個執行中的id
docker container kill [CONTAINER-ID]
上傳映像檔到Docker hub
Docker Hub是一個存放很多docker image的線上公開的倉庫。上傳前先確定有在Docker Hub註冊!
上傳之前~~
# 找到要上傳的image
docker images
# 將image加上標籤,若沒指定version就會是latest
docker tag <image-id> <account-name/repository-name>:<version>
# 登入到Docker Hub
docker login
# 將映像檔推上Docker Hub
docker push <account-name/repository-name>:<version>
---
# 將映像檔從Docker Hub上拉到本機電腦
docker pull <account-name/repository-name>
參考
主要學習資源
Udemy - Docker and Kubernetes(author:stepehn grider)