服務端渲染生產環境部署

一、運行環境準備

1、安裝Docker Toolbox

Docker Toolbox 安裝包包含了:

docker 客戶端

docker-machine 工具

docker-compose 工具

Kitematic 一個Docker的GUI

我們可以在官網下載并安裝

2、創建一臺新的Docker Machine

docker-machine create -driver virtualbox dockerhost

dockerhost是數組機名稱

3、設置環境變量

為了讓本地的 docker 客戶端了解需要連接的 docker 目標服務器地址,因此需要設置環境變量

eval “$(docker-machine env dockerhost)"

4、利用docker安裝node鏡像

docker pull node

5、利用docker安裝nginx鏡像

docker pull nginx

6、查看數組機(dockerhost)的ip

docker-machine ip dockerhost


二、準備部署代碼

1、新建一個文件夾ssr,將打包之后的代碼(dist文件夾)放入ssr文件夾中

2、將server.js放入ssr文件夾中,server.js文件內容如下


3、將package.json文件放入ssr文件夾中


4、將ssr壓縮成zip格式的,再將ssr.zip從主機中拷入數組機中

docker scp ~/www/ssr.zip dockerhost:/home/docker/ssr.zip

需要注意的是,拷貝路徑必須是絕對路徑

5、進入數組機中用ls命令可以看到ssr.zip文件,解壓ssr.zip

docker-machine ssh dockerhost

ls

unzip ssr.zip


三、自定義pm2鏡像

1、進入解壓后的文件夾ssr

cd ssr

2、創建并編輯process.yml文件

vi process.yml

process.yml文件內容為:


3、創建并編輯dockerfile文件

vi dockerfile

dockerfile文件內容為:


執行如下命令構建一個鏡像

docker build -t ssr/pm2 .

執行完之后就會構建一個名為ssr/pm2的鏡像

4、執行如下命令,用ssr/pm2鏡像啟動一個容器

docker run -d --name testpm2 -p 8080:8080 ssr/pm2


四、自定義Nginx鏡像

1、在新的文件夾里創建并編輯dockerfile文件


2、創建并編輯nginx.conf文件


執行下面的命令創建一個Nginx鏡像

docker build -t ssr/nginx .

3、使用docker images查看鏡像

docker images

4、創建一個Nginx容器并連接之前創建的testpm2容器

docker run -d --name nginx -p 80:8089 --link testpm2:testpm2 ssr/nginx

5、在主機的瀏覽器地址中輸入數字機的ip地址即可訪問,如:192.168.99.100


五、小結

1、在瀏覽器中訪問數組機的ip時出現不能訪問的情況,應該容器沒有啟動起來,在上述啟動容器的步驟中用的是-d命令,-d表示讓容器在后臺運行。若想查看容器的具體錯誤,在啟動容器的時候將-d換成-it即可 2、常用docker命令

docker-machine ssh dockerhost //進入數組機

docker-machine start dockerhost //啟動數組機

docker-machine scp 源路徑 目標路徑 //將文件從主機中拷入數組機中,源路徑是文件所在主機的位置,目標路徑是數組機的路徑(dockerhost:/home/docker/**.zip)

docker run -it --name test node//啟動一個node容器,名為test

docker build -t test/node .//創建test/node鏡像

docker images //查看鏡像列表

docker ps //查看正在運行的容器

docker ps -a //查看所有容器

docker start test 啟動名為test容器

docker stop test 停止名為test容器

docker rm test //刪除名為test容器

docker rm test -f //刪除正在運行中的test容器

docker rmi test/node //刪除名為test/node的鏡像

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • Docker — 云時代的程序分發方式 要說最近一年云計算業界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,591評論 15 147
  • 以下原文轉載于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend閱讀 7,598評論 0 17
  • 五、Docker 端口映射 無論如何,這些 ip 是基于本地系統的并且容器的端口非本地主機是訪問不到的。此外,除了...
    R_X閱讀 1,787評論 0 7
  • 睡前陪著你的是手機,睡醒了第一反應也是拿起手機,到底是你擁有了手機,還是手機擁有了你,是你操縱著手機,還是手機操縱...
    小勇勇就是我閱讀 162評論 0 0