Docker: Dockerfile vs docker-compose.yml

I have a Dockerfile as the following:

FROM docker/whalesay:latest
RUN apt-get update && apt-get install -y fortunes
CMD while true; do /usr/games/fortune -a | cowsay; sleep 2; done

I have built the above Dockerfile as image: docker-whale

  • What's the fastest way to migrate from boot2docker to Vagrant+NFS on Mac OS X?
  • Copy multiple directories with one command
  • Travis-CI: docker image as build environment
  • Access service on subdomain in Kubernetes
  • docker behind proxy doesn't use system proxy info
  • Gunicorn graceful stopping with docker-compose
  • I want to write a docker-compose.yml for the above image. My understanding is that you can run multiple containers with docker-compose.

    So if i want to run 5 images of docker-whale, how does docker-compose.yml looks like?

  • How to Copy Files From Docker Ubuntu Container to Windows Host
  • Why do I get Error: Could not find or load main class .jar when I run docker image
  • What is the impact of using multiple Base Images in Docker?
  • Trouble deploying docker on AWS with ecs-cli
  • Docker centos7 systemctl deos not work : Failed to connect D-bus
  • libgd not installed in php:5.6-cli docker
  • 3 Solutions collect form web for “Docker: Dockerfile vs docker-compose.yml”

    You could put this docker-compose.yaml next to your Dockerfile:

    version: '2'
    services:
      docker-whale:
        image: docker-whale
        build: .
    

    And then execute the following commands:

    # build docker image
    docker-compose build
    
    # bring up one docker container
    docker-compose up -d
    
    # scale up to three containers
    docker-compose scale docker-whale=3
    
    # overview about these containers
    docker-compose ps
    
    # view combined logs of all containers
    # use <ctrl-c> to stop viewing
    docker-compose logs --follow
    
    # take down all containers
    docker-compose down
    

    I assume you want to run 5 containers of docker-whale and not 5 images .

    In your case compose.yml will not have information about number of containers. You need to use scale command

    docker-compose scale <service-name>=5
    

    docker-compose.yml

    docker-whale:
      image: docker-whale
    

    Then inside same folder run:

    docker-compose up -d
    docker-compose scale docker-whale=5
    

    This assumes your application is scale-aware, but you still can write 5 entries in docker-compose.yml, this is screwdriver but sometimes useful:

    docker-whale-1:
      image: docker-whale
    
    docker-whale-2:
      image: docker-whale
    
    docker-whale-3:
      image: docker-whale
    
    docker-whale-4:
      image: docker-whale
    
    docker-whale-5:
      image: docker-whale
    
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.