Docker – container with multiple images

I wanted to make a Dockerfile with multiple images to run in one container.

What is the best method to go about this? Below is a list of what I wanted to run in a single container. I have not have any luck with making a Dockerfile with all of these included.

  • Ansible docker_container etc_hosts with variable key
  • How to make pull public and push requiring login in docker registry v2?
  • Connection was reset on a flask web app
  • Having Docker image renaming issue
  • Sample docker compose setup for web application devops
  • Putting databases in their own Docker containers?
    • MySQL Server
    • RabbitMQ
    • Java8
    • Node.js
    • Xvfb
    • Firefox
    • Chrome

    This is what I have so far, can I get a few tips

    FROM stackbrew/ubuntu:12.04
    # 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"] 

  • access docker container in kubernetes
  • Virtualbox inside docker container without host dependency
  • Running multiple instances of an image with docker-compose fails
  • Node Docker Image supporting node --harmony
  • Docker Created Volume Does Not Exist With Inspect
  • Does docker machine have the overhead of executing docker on top of a virtual machine?
  • 2 Solutions collect form web for “Docker – container with multiple images”

    You cannot have “multiple images to run in one container”, that wouldn’t make sense.

    But you can write a Dockerfile to create an image that will install all the services you mentionned. Example (Ubuntu/Debian distribution) :

    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"]

    Then you would have to get all of them started automatically when the container starts.

    You can use a process manager such as supervisord (Docker documentation here).

    Alternatively, you could use a regular init system, check this base image : ubuntu-upstart. This one would allow you to only have to install the packages in your Dockerfile and get them started automatically without any effort, by specifying /sbin/init as EntryPoint or CMD in your Dockerfile.

    The feature you’re looking for is Docker Compose.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.