Docker如何同时启动多个服务

 更新时间:2016年10月13日 10:57:51   作者:kongxx  
这篇文章主要为大家详细介绍了Docker如何同时启动多个服务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前几篇Docker的文章介绍启动容器时都是只启动一个后台服务,今天来说说怎样通过supervisor来启动多个服务

1. 首先创建一个目录并在目录下创建一个Dockerfile,文件内容如下

FROM centos:centos6

MAINTAINER Fanbin Kong "kongxx@hotmail.com"

RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN yum install -y openssh-server sudo mysql-server mysql supervisor
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config 
 
RUN useradd admin
RUN echo "admin:admin" | chpasswd
RUN echo "admin ALL=(ALL)  ALL" >> /etc/sudoers
 
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN mkdir /var/run/sshd

RUN /etc/init.d/mysqld start &&\
 mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'letmein';"&&\
 mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'letmein';"&&\
 mysql -u root -pletmein -e "show databases;"

RUN mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisord.conf

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

2. 在Dockerfile所在目录下创建supervisord.conf文件,内容如下:

[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
[program:mysqld]
command=/usr/bin/mysqld_safe


3. 在Dockerfile所在目录下运行build命令来生成image文件,这里使用mysql_server作为image文件名

sudo docker build -t myserver .

4. 启动容器

4.1 首先使用下面的命令来启动容器

sudo docker run --name=myserver -d -P myserver

4.2 启动完容器后,可以使用“sudo docker ps”来查看,此时可以看PORTS列内容为
“0.0.0.0:49171->22/tcp, 0.0.0.0:49172->3306/tcp”
容器的22端口和3306端口会被映射到宿主机器的49171和49172端口。

4.3 此时就可以通过下面的命令来访问ssh和mysql服务了

ssh admin@<宿主机器> -p <宿主机器端口>
mysql -h <宿主机器> -u root -pletmein -P 49172

4.4 当然也可以使用“sudo docker inspect myserver | grep IPAddress”来查看容器IP地址,然后通过下面命令访问ssh和mysql服务

ssh admin@<容器机器IP>
mysql -h <容器机器IP> -u root -pletmein

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Deepin使用docker安装mysql数据库过程详解

    Deepin使用docker安装mysql数据库过程详解

    这篇文章主要介绍了Deepin使用docker安装mysql数据库过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Docker搭建私有仓库(registry与Harbor)的实现

    Docker搭建私有仓库(registry与Harbor)的实现

    这篇文章主要介绍了Docker搭建私有仓库(registry与Harbor)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Docker容器之间的通信的方法实现

    Docker容器之间的通信的方法实现

    本文主要介绍了Docker容器之间的通信的方法实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 详解如何解决docker容器无法通过IP访问宿主机问题

    详解如何解决docker容器无法通过IP访问宿主机问题

    这篇文章主要介绍了详解如何解决docker容器无法通过IP访问宿主机问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • docker中容器数据卷volume介绍

    docker中容器数据卷volume介绍

    大家好,本篇文章主要讲的是docker中容器数据卷volume介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • docker中如何启动已存在容器

    docker中如何启动已存在容器

    这篇文章主要介绍了docker中如何启动已存在容器问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • CentOS8下的Docker使用详解

    CentOS8下的Docker使用详解

    这篇文章主要介绍了CentOS8下的Docker使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 详解挂载运行的docker容器中如何挂载文件系统

    详解挂载运行的docker容器中如何挂载文件系统

    这篇文章主要给大家介绍了如何在挂载运行中的docker容器中挂载文件系统,文中通过一步步的实践过程介绍的很详细,相信对有需要的朋友们来说具有一定的参考借鉴价值,感兴趣的朋友们下面来一起看看吧。
    2016-12-12
  • Docker之开启远程访问的实现

    Docker之开启远程访问的实现

    这篇文章主要介绍了Docker之开启远程访问的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 再见 Docker如何5分钟转型 containerd

    再见 Docker如何5分钟转型 containerd

    这篇文章主要介绍了再见 Docker如何5分钟转型 containerd,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论