手工部署容器應用——容器虛擬機?

概述?

如果您的應用的依賴包比較復雜,無法直接上傳或者通過新浪云的云端構建程序構建的時候,您可以通過線上手工部署的方式來部署您的程序,手工部署的過程和使用云主機、VPS等差不多,下文中我們將一步一步教您如何在新浪云手工部署一個應用。

警告

手工部署主要用來在線構建容器鏡像、運行調試,線上環境請 一定要打成鏡像 后再部署。

創建實例?

首先,進入云應用首頁,點擊『創建應用』創建一個新的應用。應用類型選擇『自定義 / 容器 / 手工部署』。

../../_images/docker-vm-create.png

按照自己的需求,選擇一個操作系統鏡像,選擇機器的配置,輸入應用名,然后點擊創建應用,一個新的容器虛擬機就創建成功了。

登錄實例?

虛擬機創建成功后,控制臺會跳轉到『容器管理』頁面,等容器虛擬機啟動成功(狀態為運行)時,點擊容器虛擬機右側的『終端』,就可以直接在 WEB 中直接進入 ssh 登錄進容器虛擬機了。

../../_images/docker-vm-management.png

你也可以通過 SSH/SFTP 客戶端工具來登錄管理實例,詳細見: 如何使用 SSH/SFTP 客戶端登錄容器虛擬機

安裝應用程序?

進入容器虛擬機的 ssh 終端后,就可以跟普通的虛擬機一樣的的管理了。(下文中,我們 CentOS-7 系統安裝配置運行一個 Nginx 服務器為示例)。

$ yum install epel-release
$ yum install nginx

啟動應用程序?

現在訪問應用 URL,頁面會返回 502 ,因為現在還沒有進程在處理請求。

應用創建后,新浪云會自動給容器虛擬機添加一個 HTTP 負載均衡,您只需要在容器虛擬機中啟動一個應用程序,讓程序監聽在 5050 端口上,就可以通過應用的二級域名 http://應用名.applinzi.com 來訪問自己的應用程序了。

修改 Nginx 的配置文件 /etc/nginx/nginx.conf ,修改以下配置:

daemon off;
worker_processes 2;

http {

    ...

    server {
        listen 5050 default_server;
        ...
    }
}

警告

注意其中的 daemon 選項,所有啟動的應用程序必須啟動在前臺,不能是后臺程序。

我們在終端中啟動 Nginx 。

$ nginx

現在,再訪問應用的 URL,就能看到 Nginx 的 Welcome 頁面了。

調試和測試時,您可以直接在 ssh 終端中啟動應用程序,但是如果虛擬機重啟或者應用程序異常退出,通過 ssh 終端啟動的程序不會被系統自動重啟,如果需要自己的應用程序能自動重啟,你需要使用系統的進程管理工具來啟動應用程序,容器虛擬機默認的進程管理工具是 Mint ,在系統的 /etc/ 目錄下新建一個配置文件, Procfile ,添加如下配置:

web: nginx

在命令行中執行 mint start web ,即可使用 Mint 來啟動 web 進程,現在進程已經由系統來管理,虛擬機如果重啟會自動啟動該進程。

Mint 進程管理工具?

Mint 的配置文件為 /etc/Procfile ,Procfile 中每一行定義一個要啟動的進程,格式為:

進程名:啟動命令

配置示例:

web: go run web.go -a :$PORT
worker: bundle exec ruby worker.rb

Mint 支持如下命令:

$ mint              -- 打印幫助信息
$ mint reload       -- 重新讀取配置文件并重啟所有進程
$ mint start XXX    -- 啟動進程名為 XXX 的進程
$ mint stop  XXX    -- 停掉進程名為 XXX 的進程
$ mint restart XXX  -- 重啟進程名為 XXX 的進程
$ mint status       -- 打印所有運行的進程運行狀況

Mint 會自動重啟異常退出的進程,但是如果進程連續 3 次啟動不到 1 分鐘就退出,Mint 會認為進程無法啟動而不再重啟。

Crontab 定時任務?

容器虛擬機默認沒有安裝 crond ,如果你需要使用容器虛擬機的 crontab 功能,您需要安裝并運行 crond 進程。(以 CentOS 為例):

$ yum install cronie

將 crond 啟動命令加入到 /etc/Procfile

crond: crond -n

最后,執行 mint start crond 啟動 crond 進程。

創建鏡像?

手工部署完一臺虛擬機后,你可以給虛擬機創建鏡像,在容器虛擬機的右側選擇『打包鏡像』。

../../_images/docker-create-image.png

其中 啟動命令 是你要讓容器啟動后要運行的程序。這個命令必須運行在前臺,否者容器會啟動失敗。

創建出來的鏡像可以直接用來啟動新的應用,在創建應用的時候選擇『自定義/容器/我的鏡像』,選擇剛才打包出來的鏡像即可。

注解

強烈建議在完成環境制作后打包鏡像保存。

河南22选5开奖
  • <em id="xpjve"><ol id="xpjve"></ol></em>

          1. <em id="xpjve"><ol id="xpjve"></ol></em>