use*_*313 6 containers image rabbitmq docker
我想制作一个包含多个图像的 Dockerfile 以在一个容器中运行。
解决这个问题的最佳方法是什么?下面是我想在单个容器中运行的列表。我在制作包含所有这些内容的 Dockerfile 方面没有任何运气。
这是我目前所拥有的,我可以得到一些提示吗
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"]
Run Code Online (Sandbox Code Playgroud)
您不能“在一个容器中运行多个图像”,这是没有意义的。
但是您可以编写一个Dockerfile来创建一个映像,该映像将安装您提到的所有服务。示例(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"]
Run Code Online (Sandbox Code Playgroud)
然后,您必须在容器启动时自动启动所有这些。
您可以使用进程管理器,例如supervisord(此处为Docker 文档)。
或者,您可以使用常规的 init 系统,检查此基本映像:ubuntu-upstart。这个人会允许你只需要安装的软件包你Dockerfile,并让他们没有任何努力自动启动,通过指定/ sbin目录/初始化为EntryPoint
或CMD
在Dockerfile。
归档时间: |
|
查看次数: |
17160 次 |
最近记录: |