能夠去看看阮一峯老師的文章:Docker入門教程,下文不對概念作過多解釋,直接上實戰步驟。html
系統:
windows10
在docker官網下載windows版本的安裝包安裝,下載完成後雙擊打開,點擊下一步下一步安裝便可。前端
window + R
,打開運行。cmd
,回車打開cmd。docker --version
,看到顯示打印出docker版本號就說明安裝成功了。
這裏使用
create-react-app
腳手架建立一個新的項目。
打開cmd
運行命令,建立一個名爲docker-demo
的項目。node
npx create-react-app docker-demo
scripts
文件夾,再新建server.js
。用於編寫node服務器,運行打包後的代碼。Dockerfile
文件,用於運行指定建立鏡像時要運行的docker命令。.dockerignore
文件,用於加入docker
忽略文件。建立完成後的目錄結構以下:react
在server.js
文件中加入以下代碼:linux
const express = require("express"); //引入express模塊 const path = require("path"); //引入path模塊 const app = new express(); //建立一個express實例 app.use(express.static(path.join(__dirname, "../build"))); //監聽build文件夾下的文件 //監聽8080端口 app.listen(8080, function() { console.log(path.join(__dirname, "../build")); console.log("服務器已啓動"); });
在編寫Dockerfile
文件中加入以下代碼:git
# 使用最新的長期維護版本node做爲基礎鏡像 FROM node:lts # 將當期目錄下的文件拷貝到linux系統的app文件夾下 COPY . /app/ # 使用app文件夾做爲工做目錄 WORKDIR /app # 設置npm的鏡像爲淘寶鏡像,安裝依賴 RUN npm config set registry https://registry.npm.taobao.org && npm install # 運行build命令 RUN npm run build # 暴露docker容器的80端口 EXPOSE 80 # 運行docker腳本命令 CMD [ "npm", "run", "docker" ]
在package.json
文件中加入sciprts
命令:docker
"docker": "node ./scripts/server"
在.dockerignore
加入以下代碼:express
node_modules .git
docker
,雙擊Docker Desktop
圖標。
啓動須要等一段時間,在任務欄,將鼠標放在docker
圖標上,看到Docker Desktop is running
說明運行成功了。npm
打包鏡像,在項目根目錄運行命令,這個命令也要跑好久,能夠先去泡杯枸杞菊花茶🍺:json
docker image build -t docker-demo .
看到Successfully built
字樣說明打包成功了。
使用鏡像運行一個容器:
docker container run --publish 80:8080 --detach --name dd docker-demo
運行成功會出來一串hash值
localhost
就可看到頁面啦😀
若是要實現代碼自動化打包部署,這只是其中的一步,還要結合jenkins
使用。
自動部署就是在你提交代碼以後,就能在服務器觸發代碼打包和運行,不再用進行手動打包代碼、提交代碼這種重複又沒有意義的工做,極大地解放了勞動力🙉。
最後附上經常使用docker
命令:
docker image build -t [標籤名稱] .
docker container run --publish [暴露接口]:[程序運行接口] --detach --name [container名稱] [image名稱]
docker image ls
docker image pull [倉庫名]
docker container kill [容器id]
docker container ls
docker container ls --all
docker container rm [containerID]