docker之mac下部署nodejs項目
mac下docker安裝
1.官網下載
2. 安裝教程可參照官方安裝教程
3.安裝成功可以看到此界面:
4.檢驗安裝結果。
docker -v
結果爲:
初始化一個Node.js項目
- 初始化node.js
npm init
2.創建service文件即程序入口
const Koa = require('koa');
const app = new Koa();
app.use(async ctx => {
ctx.body = 'hello docker';
});
app.listen(3000);
3.創建Dockerfile文件·
# 制定node鏡像版本
FROM node:10
MAINTAINER vincent
# 將根目錄下的文件都copy到container(運行此鏡像的容器)文件系統的app文件夾下
ADD . /app/
# cd到app文件夾下
WORKDIR /app
# 對外暴露的端口號
EXPOSE 3000
RUN npm install
# 容器啓動時執行的命令,類似npm run start
CMD ["npm","start"]
4.創建build忽略文件配置.dockerignore文件
logs
node_modules
5.整體項目結構如下:
構建項目鏡像
1.使用docker命令的build命令,其他命令可以查看Docker命令大全
docker build -t docker_demo .
注:請注意標籤名後面的點,點其實代表的是當前路徑
2.構建過程如下:
注:由於我構建過,所以直接使用緩存,即Using cache。
3. 通過images命令查看當前鏡像
docker images
如圖:
運行nodejs項目鏡像
1.使用docker的run命令:
docker run -d -p 8081:3000 docker_demo
如圖:
2.查看運行中的docker容器:
docker ps
如圖:
3.瀏覽器測試一下
注:雖然我們項目中端口是3000,但是在run鏡像時,我們將主機端口8081映射到了3000上,所以外部直接訪問8081就可以訪問到。
4. 查看運行的容器的日誌
docker logs -f [CONTAINER ID]
就可以看到項目運行的日誌。
5. 停止運行的容器
docker stop [CONTAINER ID]/[正在運行的容器ID]
將本地鏡像推送到docker hub上
1.創建一個docker hub賬戶
打開官方網站註冊一個屬於自己的賬號
2.註冊之後可以在命令行中登陸自己的賬戶
docker login
如圖:
輸入自己的ID和密碼即可登陸成功
3.如果你使用的是vs Code開發工具,則可以直接在擴展工具中搜索docker插件,安裝成功後如圖:
注:首次使用時,在點擊Docker Hub時會提示你登陸你的Hub賬號,跟命令行登陸輸入的東西一樣。登陸成功後就很方便的查看你Hub倉庫的鏡像,以及你本地的鏡像和正在運行的容器了。
4.使用tag命令添加標籤
docker tag docker_demo vincentwsc/docker_demo
5.使用push命令將鏡像推送到Hub倉庫中
docker push vincentwsc/docker_demo
6.登陸到你的Hub頁面就可以看到你剛剛上傳的鏡像了。
7.使用pull命令從Hub拉取項目鏡像
docker pull vincentwsc/docker
就可以直接運行該項目了。