一、運行環境準備
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的鏡像