泊坞窗 - 多个图像容器(Docker - container with multiple imag

2019-10-20 02:49发布

我想使多个图像的Dockerfile在一个容器中运行。

什么是去了解这一点的最好方法是什么? 下面是什么,我想在一个容器中运行的列表。 我还没有与制作Dockerfile与所有这些包含任何运气。

  • MySQL服务器
  • 的RabbitMQ
  • Java8
  • Node.js的
  • XVFB
  • 火狐

这是我到目前为止,我可以得到一些提示

FROM stackbrew/ubuntu:12.04
MAINTAINER 
# Update the repository sources list #RUN apt-get update  
# My SQL Server ############### 
RUN apt-get 
update -qq && apt-get 
install -y mysql-server-5.5 
ADD my.cnf /etc/mysql/conf.d/my.cnf 
RUN chmod 664 /etc/mysql/conf.d/my.cnf
ADD run /usr/local/bin/run 
RUN chmod +x /usr/local/bin/run  V
OLUME ["/var/lib/mysql"] 
EXPOSE 3306
CMD ["/usr/local/bin/run"] 

Answer 1:

你不能有“多个图像在一个容器中运行”,这是没有意义。

但是,你可以写一个Dockerfile创建将安装所有你mentionned服务的图像。 实施例(Ubuntu的/ Debian的分布):

[...header...]
FROM stackbrew/ubuntu:12.04 #or use ubuntu-upstart:12.04
MAINTAINER BPetkov  

# Update the repository sources list
RUN apt-get update -qq 

# Mysql
RUN apt-get install -y mysql-server-5.5  
ADD my.cnf /etc/mysql/conf.d/my.cnf 
RUN chmod 664 /etc/mysql/conf.d/my.cnf 
ADD run /usr/local/bin/run 
RUN chmod +x /usr/local/bin/run  

# Other stuff
RUN apt-get -y install rabbitmq
RUN apt-get -y install nodejs
[...]
VOLUME ["/var/lib/mysql"] 
EXPOSE 3306 
EXPOSE .......
CMD ["/sbin/init"]

然后,你就一定得容器启动时,所有的人都自动启动。

您可以使用进程管理器,如supervisord (泊坞文档在这里 )。

或者,你可以使用普通的init系统,检查这个基本映像: Ubuntu的暴发户 。 这个人会允许你只需要安装的软件包你Dockerfile,并让他们没有任何努力自动启动,通过指定/ sbin目录/ INIT作为EntryPointCMD在Dockerfile。



Answer 2:

你要找的特点是多克撰写 。



文章来源: Docker - container with multiple images