參考資料
Docker 入門教程-阮一峰
官方文檔
1、在項目目錄下建立一個 .dockerignore
檔案。
.dockerignore
// .dockerignore
.git
node_modules
npm-debug.log
上面代碼表示,這三個路徑要排除,不要打包進入 image 檔案。
2、在項目目錄下建立一個 Dockerfile
檔案,編輯自己的操作。
Dockerfile
// Dockerfile
FROM node:12.12.0
WORKDIR /usr/src/app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]
- FROM node:12.12.0:該 image 檔案繼承官方的 node image,冒号表示标簽,這裡标簽是12.12.0,即12.12.0版本的 node。
- WORKDIR 指定容器中的工作目錄是/usr/src/app
- COPY 複制目前目錄下的到容器的工作目錄下
- RUN 在工作目錄下執行指令
- CMD 在主控端執行指令
3、建立 image 檔案
在指令行執行
docker build image -t [name] [path]
// eg
$ docker image build -t jianshu .
-t 用來指定 image 的名字
name 自定義的 image 名字
path Dockerfile 檔案所在的路徑
// 檢視 image 清單
docker images
// 删除 image,填寫 image ID
docker rmi [IMAGE ID] // docker rmi 50a0b6e611eb
4、生成容器 (container)
docker container run --publish [host port:container port] --detach --name [name] name
// eg
$ docker container run --publish 8000:8080 --detach --name js jianshu
–publish 要求Docker将主機端口8000上傳入的流量轉發到容器的端口8080(容器有自己的端口集,如果我們想要通過端口通路,需要用這種方式轉發流量。否則,作為預設的安全狀态,防火牆規則将阻止所有網絡流量到達您的容器)
–detach 要求Docker背景運作此容器
–name 為容器自定義命名
// 檢視 container 清單
docker container ls
// 停止 contaienr,container name
docker contaienr stop [name]
// 删除 cotainer
docker contaier rm [name]