Docker

An open platform for distributed applications for developers and sysadmins.

Virtualisation de services

Apache, MySQL, Nginx, RabbitMQ…

Docker vs Vagrant

Vagrant

Docker

Docker vs Vagrant

Vagrant

Docker

Démarrage                            ~1 min                      ~0.3 sec

Mémoire                                 ~256 Mo                 ~1 Mo

Espace disque                      ~1 Go                        ~100 Ko

Installation

wget -qO- https://get.docker.com/ | sh

Boot2docker

Boot2docker

Kitematic

Usage

docker run -d mysql:latest

docker ps

docker stop

docker images

docker rm

docker rmi

docker logs

Dockerfile

FROM ubuntu:trusty

RUN apt-get update && \
    apt-get install -y --force-yes curl mysql-server

ADD . /var/www

WORKDIR /var/www

ADD init.sh /init.sh
RUN chmod +x /init.sh
CMD ["/init.sh"]

Docker Compose

Anciennement : FIG

Docker Compose

web:
    build: .
    environment:
        - FOO=bar
    volumes:
        - .:/var/www
    ports:
        - "8888:80"
    links:
        - mailcatcher:mailcatcher

mailcatcher:
    image: simpledrupalcloud/mailcatcher
    ports:
        - "8880:80"
        - "8825:25"

Usage

docker-compose up -d

docker-compose run

docker-compose ps

docker-compose logs

docker-compose build

Contacter Docker depuis Docker

parameters:
    ...
    mailer_host: mailcatcher
web:
    build: .
    environment:
        - SYMFONY_ENV=dev
    volumes:
        - .:/var/www
    ports:
        - "8888:80"
    links:
        - mailcatcher:mailcatcher

mailcatcher:
    image: simpledrupalcloud/mailcatcher
    ports:
        - "8880:80"
        - "8825:25"

Et c'est parti !

docker-compose up -d

Testing ?

docker-compose run web phing test

Avantages

  • Performances
  • Facilité d'installation d'un service
  • Utilisation en cli vs Dockerfile
  • Dépôt public vs privé

Inconvénients

Boot2docker !!!