欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Docker容器運(yùn)行多條命令(supervisor)

 更新時(shí)間:2018年04月03日 11:26:15   作者:KeKeFund  
本篇文章主要介紹了詳解Docker容器運(yùn)行多條命令(supervisor),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

一, 簡介

Dockerfile 運(yùn)行只支持一條命令,當(dāng)在Docker里要運(yùn)行多條命令,用supervisor來管理就比較合適了。

Supervisor是一個(gè) Python 開發(fā)的 client/server 系統(tǒng),可以管理和監(jiān)控類 UNIX 操作系統(tǒng)上面的進(jìn)程。它可以同時(shí)啟動(dòng),關(guān)閉多個(gè)進(jìn)程,使用起來特別的方便。

組成部分

supervisor 主要由兩部分組成:

supervisord(server 部分):主要負(fù)責(zé)管理子進(jìn)程,響應(yīng)客戶端命令以及日志的輸出等;
supervisorctl(client 部分):命令行客戶端,用戶可以通過它與不同的 supervisord 進(jìn)程聯(lián)系,獲取子進(jìn)程的狀態(tài)等。

二,存在的問題——日志不輸出

但是使用supervisor,Django運(yùn)行的日志就不會(huì)在Docker里輸出了,默認(rèn)的輸出如下:

2018-03-28 06:48:20,292 CRIT Supervisor running as root (no user in config file)
2018-03-28 06:48:20,308 INFO supervisord started with pid 1
2018-03-28 06:48:21,310 INFO spawned: 'celery_beat' with pid 7
2018-03-28 06:48:21,312 INFO spawned: 'celery_worker' with pid 8
2018-03-28 06:48:21,313 INFO spawned: 'django' with pid 9
2018-03-28 06:48:22,315 INFO success: celery_beat entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-03-28 06:48:22,315 INFO success: celery_worker entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-03-28 06:48:22,315 INFO success: django entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

上面的Docker中supervisor配置如下:

[supervisord]
nodaemon=true
 
[program:django]
command=python manage.py runserver 0.0.0.0:8080
 
[program:celery_worker]
command=python manage.py celery worker -c 4 -l info
 
[program:celery_beat]
command=python manage.py celery beat

這樣的配置在容器中是同時(shí)運(yùn)行Django,celery。

三,解決方案

1,改進(jìn)后的配置方案

[inet_http_server]
port=9001
username=abc
password=123456
 
[supervisord]
nodaemon=true
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor      ; ('AUTO' child log dir, default $TEMP)
 
[program:django]
command=python manage.py runserver 0.0.0.0:8080
#stdout_logfile = /var/log/supervisord/django_stdout.log
loglevel=info
redirect_stderr=true
 
[program:celery_worker]
command=python manage.py celery worker -c 4 -l info
loglevel=info
redirect_stderr=true
 
[program:celery_beat]
command=python manage.py celery beat
loglevel=info
redirect_stderr=true

實(shí)測(cè)發(fā)現(xiàn)Django的日志輸出會(huì)寫到stderr.log文件中,所以在配置文件中將錯(cuò)誤日志重定向到標(biāo)準(zhǔn)日志里;

redirect_stderr=true

容器中的生成的日志文件如下:

root@a16bc77e96bc:/var/log/supervisor# ls
celery_beat-stderr---supervisor-rSPQ7E.log  django-stderr---supervisor-9LS_KA.log
celery_beat-stdout---supervisor-t5Q4UI.log  django-stdout---supervisor-cTSBmq.log
celery_worker-stderr---supervisor-TRFzc7.log supervisord.log
celery_worker-stdout---supervisor-xNgeBU.log

2,查看日志

運(yùn)行容器時(shí),將9001端口映射出去,通過ip:9001訪問:

點(diǎn)擊 Tail -f 查看各個(gè)進(jìn)程的日志。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker與Golang的巧妙結(jié)合

    Docker與Golang的巧妙結(jié)合

    這篇文章主要介紹了Docker與Golang的巧妙結(jié)合的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • 在docker容器中安裝vi命令的簡單操作

    在docker容器中安裝vi命令的簡單操作

    這篇文章主要介紹了在docker容器中安裝vi命令的簡單操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 使用elasticsearch定時(shí)刪除索引數(shù)據(jù)

    使用elasticsearch定時(shí)刪除索引數(shù)據(jù)

    這篇文章主要介紹了使用elasticsearch定時(shí)刪除索引數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Docker?desktop中文設(shè)置方法步驟

    Docker?desktop中文設(shè)置方法步驟

    這篇文章主要給大家介紹了關(guān)于Docker?desktop中文設(shè)置的方法步驟,Docker Desktop默認(rèn)使用英文界面,要設(shè)置為中文界面,請(qǐng)按照以下步驟操作,需要的朋友可以參考下
    2024-03-03
  • docker中使用flink記錄一些組合命令示例

    docker中使用flink記錄一些組合命令示例

    當(dāng)使用Docker運(yùn)行Flink時(shí),可以通過編寫腳本或者直接在命令行中輸入一系列的組合命令來完成特定任務(wù),本文給大家分享docker中使用flink記錄一些組合命令示例,感興趣的朋友一起看看吧
    2024-03-03
  • Docker中部署Redis并掛載配置文件

    Docker中部署Redis并掛載配置文件

    本文主要介紹了Docker中部署Redis并掛載配置文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • docker?inspect?操作詳解

    docker?inspect?操作詳解

    docker?inspect是docker客戶端的原生命令,用于查看docker對(duì)象的底層基礎(chǔ)信息。包括容器的id、創(chuàng)建時(shí)間、運(yùn)行狀態(tài)、啟動(dòng)參數(shù)、目錄掛載、網(wǎng)路配置等等。另外,該命令也可以用來查看docker鏡像的信息,這篇文章主要介紹了docker?inspect?詳解,需要的朋友可以參考下
    2023-01-01
  • docker 編輯Dockerfile 添加php7.2 acpu的問題

    docker 編輯Dockerfile 添加php7.2 acpu的問題

    這篇文章主要介紹了docker 編輯Dockerfile 添加php7.2 acpu問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 查詢Docker鏡像DockerFile的方法步驟

    查詢Docker鏡像DockerFile的方法步驟

    本文主要介紹了查詢Docker鏡像DockerFile的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Docker中Dockerfile制作鏡像的方法步驟

    Docker中Dockerfile制作鏡像的方法步驟

    本文主要介紹了Dockerfile制作鏡像的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評(píng)論