gpt4 book ai didi

image - Docker - 具有多个图像的容器

转载 作者:行者123 更新时间:2023-12-02 18:02:35 28 4
gpt4 key购买 nike

我想制作一个包含多个图像的 Dockerfile 以在一个容器中运行。

解决这个问题的最佳方法是什么?下面是我想在单个容器中运行的列表。我在制作包含所有这些内容的 Dockerfile 方面没有任何运气。

  • MySQL 服务器
  • RabbitMQ
  • Java8
  • Node.js
  • Xvfb
  • 火狐
  • Chrome

  • 这是我目前所拥有的,我可以得到一些提示吗
    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"]

    最佳答案

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

    但是您可以编写一个 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"]

    然后,您必须在容器启动时自动启动所有这些。

    您可以使用进程管理器,例如 supervisord (Docker 文档 here)。

    或者,您可以使用常规的 init 系统,检查此基本镜像: ubuntu-upstart .通过指定 ,这将允许您只需要在 Dockerfile 中安装软件包并让它们自动启动而无需任何努力。/sbin/init EntryPointCMD在你的 Dockerfile 中。

    关于image - Docker - 具有多个图像的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23636243/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com