여러 용기로 여러 서비스 시작하기
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.)