여러 용기로 여러 서비스 시작하기
                                            
                                                
                                                
                                                
                                                
                                                
                                                 7561 단어  Dockersupervisord
                    
Intro 
docker를 사용하여 웹 응용 소프트웨어를 개발하는 환경, 동시에 서비스 제공
시동이 안 걸려서 귀찮아요.
슈퍼바이어로 해볼게요.
다중 시작 명령/sbin/init
형식도 해봤지만 아이를 제대로 죽일 수는 없어요.
defunct를 양산해서 포기했어.
전제 조건 
절차. 
1. 적당한 컨테이너 가동
 
이 용기는 새로운centos6 인상이다.(장치가 설치되어 있지 않음)docker run -itd --name devutil centos:centos6 /bin/bash
2. 관련 도구를 넣기
 #めんどくさいのでまとめて入れる
yum -y groupinstall "Development Tools"
#pythonツールたちとsshとhttpd
yum -y install openssh openssh-clients openssh-server httpd vim python-setuptools
#rootのパスワード変えておく
passwd
3. supervisord 설치
 easy_install supervisor
4.supervisord의 시작 스크립트 제작
 
시작 스크립트 만들기
/etc/init.d/supervisord#!/bin/sh
#
# /etc/rc.d/init.d/supervisord
#
# Supervisor is a client/server system that
# allows its users to monitor and control a
# number of processes on UNIX-like operating
# systems.
#
# chkconfig: - 64 36
# description: Supervisor Server
# processname: supervisord
# Source init functions
. /etc/init.d/functions
RETVAL=0
prog="supervisord"
pidfile="/tmp/supervisord.pid"
lockfile="/var/lock/subsys/supervisord"
start()
{
   echo -n $"Starting $prog: "
   daemon --pidfile $pidfile supervisord
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && touch ${lockfile}
}
stop()
{
   echo -n $"Shutting down $prog: "
   killproc -p ${pidfile} /usr/bin/supervisord
   RETVAL=$?
   echo
   if [ $RETVAL -eq 0 ] ; then
      rm -f ${lockfile} ${pidfile}
   fi
}
case "$1" in
  start)
    start
  ;;
  stop)
    stop
  ;;
  status)
    status $prog
  ;;
  restart)
    stop
    start
  ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}"
  ;;
esac
 chmod 755 /etc/init.d/supervisord
4. supervisor 설정 파일 쓰기
 
/etc/supervisord.conf[supervisord]
nodaemon=true
[program:sshd]
#command=/usr/sbin/sshd -D
command=/sbin/service sshd start
[program:httpd]
command=/sbin/service httpd start
5.ssh에 대한 PAM 설정
 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config
6. 컨테이너에서commiit를 먼저 꺼내기
 
Ctrl+p+q를 통해 종료합니다.
commiit를 통해 이미지 저장docker commit 457dc5419f1a takaito/devutil
docker images
방금 가동된 컨테이너는 가동 후 삭제됩니다.docker stop {コンテナID}
docker rm {コンテナID}
7. 이미지 포트에서 매핑한 후 컨테이너 다시 시작
 docker run -itd -p 51080:80 -p 51022:22 --name devutil takaito/devutil /usr/bin/supervisord
8. 확인
 
Mac 방면에서
boot2 docker의 ip를 통해 51080 포트에서 브라우저로 접근
 
boot2 docker의 ip를 통해 5102 포트 ssh에 로그인ssh [email protected] -p 51022
할 수 있으면 오케이.
컨테이너 방면의 공정을 확인해 보아라.잘 돌아가고 있어요.ps ax
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
  PID TTY      STAT   TIME COMMAND
    1 pts/0    Ss+    0:00 /usr/bin/python /usr/bin/supervisord
   35 ?        Ss     0:00 /usr/sbin/httpd
   37 ?        S      0:00 /usr/sbin/httpd
   38 ?        Ss     0:00 /usr/sbin/sshd
   39 ?        S      0:00 /usr/sbin/httpd
   40 ?        S      0:00 /usr/sbin/httpd
   42 ?        S      0:00 /usr/sbin/httpd
   43 ?        S      0:00 /usr/sbin/httpd
   44 ?        S      0:00 /usr/sbin/httpd
   45 ?        S      0:00 /usr/sbin/httpd
   46 ?        S      0:00 /usr/sbin/httpd
  130 ?        Ss     0:00 sshd: root@pts/0
  132 pts/0    Ss     0:00 -bash
  145 pts/0    R+     0:00 ps -ax
 pstree
supervisord─┬─httpd───8*[httpd]
            └─sshd───sshd───bash───pstree
감상 
귀찮아요.일자리가 없다.
그리고 컨테이너를 루트로 옮기는 게 힘들어요.
앞으로 개선될 수 있다면 나는 매우 기쁠 것이다.
참조 링크 
http://memocra.blogspot.jp/2014/02/dockersupervisor.html 
http://yss44.hatenablog.com/entry/2014/01/05/031736
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(여러 용기로 여러 서비스 시작하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/itopan88/items/327530a8447c73e75a5a
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
docker run -itd --name devutil centos:centos6 /bin/bash
#めんどくさいのでまとめて入れる
yum -y groupinstall "Development Tools"
#pythonツールたちとsshとhttpd
yum -y install openssh openssh-clients openssh-server httpd vim python-setuptools
#rootのパスワード変えておく
passwd
easy_install supervisor
#!/bin/sh
#
# /etc/rc.d/init.d/supervisord
#
# Supervisor is a client/server system that
# allows its users to monitor and control a
# number of processes on UNIX-like operating
# systems.
#
# chkconfig: - 64 36
# description: Supervisor Server
# processname: supervisord
# Source init functions
. /etc/init.d/functions
RETVAL=0
prog="supervisord"
pidfile="/tmp/supervisord.pid"
lockfile="/var/lock/subsys/supervisord"
start()
{
   echo -n $"Starting $prog: "
   daemon --pidfile $pidfile supervisord
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && touch ${lockfile}
}
stop()
{
   echo -n $"Shutting down $prog: "
   killproc -p ${pidfile} /usr/bin/supervisord
   RETVAL=$?
   echo
   if [ $RETVAL -eq 0 ] ; then
      rm -f ${lockfile} ${pidfile}
   fi
}
case "$1" in
  start)
    start
  ;;
  stop)
    stop
  ;;
  status)
    status $prog
  ;;
  restart)
    stop
    start
  ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}"
  ;;
esac
chmod 755 /etc/init.d/supervisord
[supervisord]
nodaemon=true
[program:sshd]
#command=/usr/sbin/sshd -D
command=/sbin/service sshd start
[program:httpd]
command=/sbin/service httpd start
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config
docker commit 457dc5419f1a takaito/devutil
docker images
docker stop {コンテナID}
docker rm {コンテナID}
docker run -itd -p 51080:80 -p 51022:22 --name devutil takaito/devutil /usr/bin/supervisord
ssh [email protected] -p 51022
ps ax
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
  PID TTY      STAT   TIME COMMAND
    1 pts/0    Ss+    0:00 /usr/bin/python /usr/bin/supervisord
   35 ?        Ss     0:00 /usr/sbin/httpd
   37 ?        S      0:00 /usr/sbin/httpd
   38 ?        Ss     0:00 /usr/sbin/sshd
   39 ?        S      0:00 /usr/sbin/httpd
   40 ?        S      0:00 /usr/sbin/httpd
   42 ?        S      0:00 /usr/sbin/httpd
   43 ?        S      0:00 /usr/sbin/httpd
   44 ?        S      0:00 /usr/sbin/httpd
   45 ?        S      0:00 /usr/sbin/httpd
   46 ?        S      0:00 /usr/sbin/httpd
  130 ?        Ss     0:00 sshd: root@pts/0
  132 pts/0    Ss     0:00 -bash
  145 pts/0    R+     0:00 ps -ax
pstree
supervisord─┬─httpd───8*[httpd]
            └─sshd───sshd───bash───pstree
귀찮아요.일자리가 없다.
그리고 컨테이너를 루트로 옮기는 게 힘들어요.
앞으로 개선될 수 있다면 나는 매우 기쁠 것이다.
참조 링크 
http://memocra.blogspot.jp/2014/02/dockersupervisor.html 
http://yss44.hatenablog.com/entry/2014/01/05/031736
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(여러 용기로 여러 서비스 시작하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/itopan88/items/327530a8447c73e75a5a
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
Reference
이 문제에 관하여(여러 용기로 여러 서비스 시작하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/itopan88/items/327530a8447c73e75a5a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)