首頁  >  問答  >  主體

docker - 使用一個容器管理多個應用程式服務進程?還是每個服務進程建立一個容器?

使用一個容器管理多個應用程式服務進程?還是每個服務進程建立一個容器?

各區別是?

伊谢尔伦伊谢尔伦2757 天前1132

全部回覆(5)我來回復

  • cloudmam

    cloudmam2020-06-23 15:41:00

    推薦伺服器管理工具雲端幫手

    回覆
    0
  • 哪儿

    哪儿2020-02-27 14:48:41

    推薦一款神器應該可以幫到你,雲端幫手是一款功能強大的全面集中化管理雲端主機軟體。不只是相容Linux系統,Windows也是可以用的。實際上使用功能還是挺不錯的,因為功能全面且安裝簡單,基本上都是傻瓜式一鍵搞定,中間添加雲主機的話,首次要添加探針,以後就基本可以在面板上操作了,這個是挺方便的。主流雲那幾個基本上我都試過沒問題,系統也沒問題,這個倒是挺省心的,不會說存在什麼雲商的或者係統的就用不了,又要另外找軟體。大致功能如下:
    1.批量管理多台雲端主機;
    2.相容性強大,相容於市面基本所有的雲端商雲端主機,相容作業系統;
    3.操作簡單,視覺化介面預覽資源、一鍵修復、一鍵部署;
    4. 可以遠端登入雲端主機FTP桌面,處理雲端主機上的檔案;
    5.監控和,資源還有警告功能,這個是挺好的,不用盯著看;
    6.系統修復功能,這個是挺實用也比較必須的;
    7.免費使用。總得來說功能還挺全的,不存在需要又要另外找軟體的尷尬,一個雲幫手軟體基本上滿足了所有需求。

    回覆
    0
  • 習慣沉默

    習慣沉默2017-04-25 09:03:28

    docker中的業務怎麼拆,拆多細,實際上是個見仁見智的事情。

    例如gogs的docker容器,啟動瞭以下幾個東西:

    s6-svscan-+-s6-supervise 
              |-s6-supervise---gogs 
              |-s6-supervise---sshd 
              `-s6-supervise---syslogd 

    解釋一下,一般容器啟動如下東西:

    1. PID=1的init进程,一般用supervisord,有些人用s6,例如上文中提到的gogs。此进程主要用于进程保活,进程重启。 
    2. agent,一般用于监控,某些agent还有可能会被用于执行命令等,例如有些公司会在java容器内安插一个agent,在异常的时候可以执行jmap等操作。 
    3. 业务进程,一般附属于init进程。很少见到有直接把业务进程当做主进程(init进程)的情况。因为主进程(init进程)跪掉,docker就跪了。 
    4. 其他附属进程,例如上文中提到的gogs,会附属启动一个sshd。有些还会附属启动其他服务,例如syslogd。 

    對個人:

    举个栗子,gitlab 
    对于个人,完全可以为了方便,把gitlab的所需要的所有服务,都放进同一个docker。 
    包括: 
    1. nginx 
    2. sshd 
    3. mysql 
    4. gitlab(unicorn) 

    但是實際上,生產環境中,不能這麼做。

    至少,即便mysql不能託管給DBA,也不要放到同一個docker裡,最次,也得做關聯容器,mysql放在一個籃子裡,gitlab放在另一個籃子裡。

    從業務上來說,已經不是同一個東西了。

    從穩定性來說,也不建議。

    這是使用docker的最底線的節操,不能再低了。

    別人怎麼拆解gitlab的業務

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-25 09:03:28

    像marathon可以調度容器化服務的工具,有healthcheck功能,假如php-fpm掛了,healthcheck檢查的是php-fpm端口,maraton會殺掉這個容器,重新起一個instance。
    假如所有進程都放一個容器裡,雖然可以建立多個health,但是healthcheak之間or的關係,假如nginx和php-fpm都掛了,healthcheck還是通過的。
    也可以一個healthcheck透過nginx存取一個php頁面,這樣兩個服務進程都檢查到了。但是如果其中一個掛了,對容器進程重啟代價還挺大的。

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-04-25 09:03:28

    例如一個應該有一個web應用, 和一個資料庫元件,
    在web經常更新的情況下應該把兩個分開, 如果穩定版, 可以用幾年不更新的就放一起吧.

    回覆
    0
  • 取消回覆