概述
作為一個前端,我覺得必須要學會使用 docker 干下面幾件事:
- 部署前端應用
- 部署 nginx
- 給部署的 nginx 加上 https
- 使用 docker compose 進行部署
- 給 nginx 加上 redis
- 使用 kubernetes
下面我按照這個節奏一一研究一遍,把心得記錄下來,供以后開發時參考,相信對其他人也有用。
部署前端應用
(安裝 docker 的過程就略去了,請自行查看官方文檔安裝)
1.我們設置國內鏡像,方便以后下載鏡像文件。
1.點擊屏幕上方的鯨魚 docker 圖標。
2.點擊 Preferences。
3.點擊 Deamon。
4.在 Registry mirrors 那里填上 https://registry.docker-cn.com
2.拉取 node 鏡像。輸入下面的命令遠程拉取最新版本的 node 鏡像。
docker pull node:latest
查看本地鏡像有哪些:
docker images
3.在前端項目的主目錄下建立 Dockerfile 文件,寫入如下內容:
FROM node:latest
WORKDIR /home/app
COPY . .
RUN npm install
expose 8080
CMD npm run serve
// 使用最新的 node 鏡像
// 設置工作目錄為 /home/app
// 把當前目錄下的文件全部復制到工作目錄下面
// 在工作目錄下面運行 npm install
// 暴露 8080 端口(注意:這個 8080 端口就是 npm run serve 的端口)
// 在 cmd 里面使用 npm run serve 命令(注意:這里需要用你自己項目中的命令)
4.我們並不需要把 node_modules 里面的文件復制到 docker 里面去,所以我們在前端項目的主目錄下建立 .dockerignore 文件,並寫入如下內容:
node_modules
5.上面只是准備工作,現在才正式開始。我們使用剛才建立好的 Dockerfile 文件給項目進行打包,建立一個鏡像文件:
docker build -t docker-app:latest .
docker 內部會生成一份這個鏡像文件,我們可以用docker images
查看。
6.用這個鏡像文件創建一個實例並運行。
docker run -d -p 2001:8080 docker-app
// -d 意思是在后台運行
// -p 2001:8080 意思是把 docker 的 8080 端口連接到本機的 2001 端口
// 以后就可以通本機的 2001 端口訪問 docker 的 8080 端口了
7.最后打開 localhost:2001 即可。
搞事
有時我們想進入 docker 的 bash 里面搞點事,那方法是運行如下命令即可:
docker exec -it [container_id] /bin/bash
那我們怎么得到這個容器 container_id 呢? 運行如下命令即可:
docker ps -a
那我們要怎么刪除一個鏡像/容器呢?
docker rmi -f [image_id]
docker rm -f [container_id]
那我們要怎么停止/開始一個容器呢?
docker stop [container_id]
docker start [container_id]
注意:本文的步驟顯然不是正常部署的步驟,因為我們在 docker 里面使用的是 npm run dev 命令啊。所以實際上部署只需要把 dist 文件夾里面的內容 copy 進 docker 鏡像里面去就可以了。