Docker使用supervisor啓動Mysql

在使用Docker的時候常常會遇到單個Docker容器啓動多個服務時非常困難,比如我需要在單個Docker容器中啓動SSH和Mysql,會遇到mysql啓動成功但是沒有SSH功能或有SSH功能mysql無法啓動成功。那麼我們用什麼方式來解決這種問題呢?

supervisor完美的解決了我們問題,接下來看一下如何利用supervisor啓動帶有SSH功能的Mysql。

1.cetnos基礎鏡像 構建ssh-supervisor

下載地址:

docker pull aarongo/centos-ssh-supervisor


另附dockerfile:

FROM centos:centos6
MAINTAINER  aaron "[email protected]"

#Install supervisor
RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN yum -y update  && yum -y install python-pip && /usr/bin/pip install supervisor
RUN mkdir -p /etc/supervisor/conf.d && mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisord.conf
VOLUME /var/log/supervisor

#install sshd 
RUN yum install -y openssh-server && sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
# select root pasword
RUN echo "root:pasword" | chpasswd && echo "root   ALL=(ALL)       ALL" >> /etc/sudoers
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN mkdir /var/run/sshd

EXPOSE 22
CMD ["/usr/bin/supervisord"]


運行方式:

docker run -d -p <localhostport>:<Containerport> aarongo/centos-ssh-supervisor
#or
docker run -it -p <localhostport>:<Containerport> aarongo/centos-ssh-supervisor


115202_gyPy_2277525.png

2.構建以ssh-supervisor爲基礎的mysql

下載地址:

docker pull aarongo/centos-mysql-supervisor


Dockerfile:

FROM aarongo/centos-ssh-supervisor
MAINTAINER  aaron "[email protected]"

RUN  yum install -y mysql-server mysql   
RUN /etc/init.d/mysqld start &&\  
    mysql -e "grant all privileges on *.* to 'user'@'%' identified by 'password';"&&\  
    mysql -e "grant all privileges on *.* to 'user'@'localhost' identified by 'password';"&&\  
    mysql -u user -ppassword -e "show databases;" 
COPY supervisord.conf /etc/supervisord.conf
VOLUME ["/mysqldata"]
EXPOSE 22 3306
CMD ["/usr/bin/supervisord"]
#VOLUME 選項是將本地的目錄掛在到容器中 此處要注意:當你運行-v <hostdir>:<Containerdir> 時要確保目錄內容相同否則會出現數據丟失


運行方式:

docker run -p <localport>:<container 22> -p <localprot>:<container 3306> -it -v /mysqldata:/var/lib/mysql aarongo/centos-mysql-supervisor
#or
docker run -d -p <localport>:<container 22> -p <localprot>:<container 3306> -v /mysqldata:/var/lib/mysql aarongo/centos-mysql-supervisor


如果運行成功:

2014-11-26 03:55:27,487 INFO success: sshd entered RUNNING state, process has stayed up for > than 1 stsecs)
2014-11-26 03:55:27,487 INFO success: mysqld entered RUNNING state, process has stayed up for > than 1artsecs)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章