首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个图像的码头集装箱

问多个图像的码头集装箱
EN

Stack Overflow用户
提问于 2014-05-13 16:04:08
回答 2查看 26.2K关注 0票数 6

我想要创建一个包含多个映像的Dockerfile,以便在一个容器中运行。

做这件事最好的方法是什么?下面是我想在单个容器中运行的内容列表。我没有任何运气做一个Dockerfile与所有这些都包括在内。

  • MySQL服务器
  • RabbitMQ
  • Java8
  • Node.js
  • Xvfb
  • Firefox
  • 铬

到目前为止,这就是我所拥有的,我能得到一些提示吗?

代码语言:javascript
复制
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"] 
EN

回答 2

Stack Overflow用户

发布于 2014-05-13 17:11:57

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

但是您可以编写一个Dockerfile来创建一个映像,该映像将安装您提到的所有服务。示例(Ubuntu/Debian发行版):

代码语言:javascript
复制
[...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"]

然后,当容器启动时,您必须让它们全部自动启动。

您可以使用流程管理器(如监督d (DockerDocuments这里))。

或者,您可以使用一个常规的init系统,检查这个基本映像:ubuntu-新贵。通过在Dockerfile中将/sbin/init指定为EntryPoint或CMD,您只需在Dockerfile中安装包并自动启动它们,而无需任何努力。

票数 7
EN

Stack Overflow用户

发布于 2016-05-07 21:25:01

您要寻找的功能是码头组成。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23636243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档