Docker-compose

[Pages:12]docker-compose

#dockercompose

Table des mati?res

? propos

1

Chapitre 1: D?marrer avec docker-compose

2

Remarques

2

Examples

2

Installation

2

Cr?er une application simple

2

Ex?cuter la commande dans le service docker-compose

4

Installer Docker Compose

4

Docker Compose Bonjour tout le monde

4

Ruby on Rails avec docker-compose

5

Chapitre 2: Docker compose un exemple multi-conteneur avec un r?seau par d?faut

7

Remarques

7

Examples

7

Comment cr?er un environnement LAMP de base avec la mise en r?seau par d?faut

7

Chapitre 3: Variables d'environnement fichier externe

9

Introduction

9

Examples

9

Via un fichier externe

9

dans le docker-compose lui-m?me

9

Cr?dits

10

? propos

You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: docker-compose

It is an unofficial and free docker-compose ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official docker-compose.

The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to info@



1

Chapitre 1: D?marrer avec docker-compose

Remarques

Compose est un outil permettant de d?finir et d'ex?cuter des applications Docker multiconteneurs. Avec Compose, vous utilisez un fichier Compose pour configurer les services de votre application. Ensuite, en utilisant une seule commande, vous cr?ez et d?marrez tous les services de votre configuration. Pour en savoir plus sur toutes les fonctionnalit?s de Compose, consultez la liste des fonctionnalit?s.

Utiliser Compose est fondamentalement un processus en trois ?tapes.

1. D?finissez l'environnement de votre application avec un Dockerfile afin qu'il puisse ?tre reproduit n'importe o?.

2. D?finissez les services qui composent votre application dans docker-compose.yml pour qu'ils puissent ?tre ex?cut?s ensemble dans un environnement isol?.

3. Enfin, ex?cutez docker-compose up et Compose d?marrera et ex?cutera l'int?gralit? de votre application.

Examples

Installation

Si vous ex?cutez Docker sous OS X ou Windows, docker-compose doit ?tre inclus dans votre installation Docker for Windows ou Docker Toolbox.

Sous Linux, vous pouvez obtenir les derniers binaires directement depuis la page de publication de GitHub:

Vous pouvez installer la version sp?cifique avec les commandes suivantes:

curl -L `uname -s``uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose

Pour plus d'informations, veuillez vous r?f?rer ? la page de documentation

Cr?er une application simple

Cet exemple provient du document officiel. Supposons que vous ayez une application python utilisant redis comme backend. Apr?s avoir ?crit Dockerfile , cr?ez un fichier docker-compose.yml comme ceci:

version: '2' services:

web:



2

build: . ports:

- "5000:5000" volumes:

- .:/code depends_on:

- redis redis:

image: redis

Ensuite, lancez docker-compose up pour configurer l'application enti?re, y compris: python app et redis.

? version: '2' est la version de la syntaxe du fichier docker-compose ? services: est une section d?crivant les services ? ex?cuter ? web: et redis: sont les noms des services ? d?marrer, leur contenu d?crit comment docker

doit d?marrer les conteneurs pour ces services ? depends_on implique une d?pendance de web ? redis et docker-compose commence donc le

conteneur redis puis le conteneur web. N?anmoins, docker-compose n'attend pas que le conteneur redis soit pr?t avant de d?marrer le conteneur web . Pour ce faire, vous devez utiliser un script qui retarde le d?marrage du serveur d'applications ou autre jusqu'? ce que le conteneur redis puisse ex?cuter des requ?tes.

Une section sur les volumes et les r?seaux peut ?galement ?tre ajout?e. L'utilisation de la section des volumes permet d'obtenir un volume d?connect? pouvant fonctionner ind?pendamment de la section des services de composition de docker. La section des r?seaux a un r?sultat similaire.

La section des services redis devrait ?tre ajust?e comme suit:

redis: image: redis volumes: - redis-data:/code networks: -back-tier

Ensuite, ajoutez les sections suivantes au bas du fichier docker compose la version 2.

volumes: # Named volume redis-data: driver: local

networks: back-tier: driver: bridge

redis-data fournit une ?tiquette accessible de la section des services. driver:local d?finit le volume sur le syst?me de fichiers local.

back-tier d?finit le libell? de la section des r?seaux pour qu'il soit accessible dans la section des services en tant que pont.



3

Ex?cuter la commande dans le service docker-compose

docker-compose run service-name command

Si, par exemple, vous souhaitez ex?cuter rake db:create dans votre service web , vous devez utiliser la commande suivante:

docker-compose run web rake db:create

Installer Docker Compose

1. Installez Docker Engine . Si vous obtenez une erreur de Permission denied , ex?cutez sudo -i avant les deux commandes ci-dessous, puis quittez.

2. Tirez Docker Compose en /usr/local/bin/docker-compose .

curl -L `uname -s``uname -m` > /usr/local/bin/docker-compose

Vous pouvez modifier la version 1.7.1 pour correspondre ? votre version souhait?e. Essayez la version de 3. Appliquez des autorisations ex?cutables au binaire.

chmod +x /usr/local/bin/docker-compose

4. Testez l'installation.

docker-compose --version

Docker-compose attendu version 1.7.1, build 0a9ab35

Docker Compose Bonjour tout le monde

Un docker-compose.yml tr?s basique ressemble ? ceci:

version: '2' services:

hello_world: image: ubuntu command: [/bin/echo, 'Hello world']

Ce fichier fait en sorte qu'il y a un service hello_world , qui est initialis? ? partir de la ubuntu:latest image d' ubuntu:latest et que, lorsqu'il est ex?cut?, il ne fait qu'ex?cuter echo 'Hello world' Si vous ?tes dans le folder (et qu'il contient ce fichier docker-compose.yml ), vous pouvez dockercompose up et vous devriez voir



4

Creating folder_hello_world_1 Attaching to folder_hello_world_1 hello_world_1 | Hello world folder_hello_world_1 exited with code 0

Cela a cr?? le conteneur ? partir de l'image ubuntu et a ex?cut? la commande sp?cifi?e sur le

docker-compose.yml

Docker-Compose utilise le nom du dossier comme nom du projet pour pr?fixer les conteneurs et les r?seaux. Pour d?finir un autre nom de projet, vous pouvez appeler docker-compose --project-name NAME {up|down|...} ou vous ajoutez un fichier appel? .env c?t? de votre docker-compose.yml et ?crivez COMPOSE_PROJECT_NAME=name dans il. Mieux vaut ?viter les noms de projets longs avec des tirets (-) car docker compose des formes ?tranges avec ce type de noms.

Remarque: docker-compose vous permet d'ex?cuter plusieurs conteneurs de docker sur un seul h?te. Si vous souhaitez ex?cuter plusieurs conteneurs sur plusieurs noeuds, reportez-vous ? la solution telle que swarm / kubernetes.

Ruby on Rails avec docker-compose

Si vous souhaitez utiliser l'application docker for rails et utiliser la base de donn?es, vous devez savoir que toutes les donn?es du conteneur docker seront d?truites (sauf si vous configurez le conteneur sp?cifiquement pour conserver les donn?es). Parfois, vous devez cr?er un conteneur docker avec une application et le joindre ? un ancien conteneur avec une base de donn?es.

Comme exemple d'application de rails, j'ai utilis? une application simple. Vous pouvez le cr?er ? partir de la commande:

rails new compose-app --database=postgresql

Bien entendu, vous devez pr?alablement installer des rails, des rubis, etc.

Ensuite, cr?ez Dockerfile dans votre projet et d?finissez-lui les donn?es suivantes:

FROM ruby:2.3.1 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN mkdir /compose-app WORKDIR /compose-app ADD Gemfile /compose-app/Gemfile ADD Gemfile.lock /compose-app/Gemfile.lock RUN bundle install ADD . /compose-app

Etape suivante - cr?ez docker-compose.yml avec les donn?es:

version: '2' services:

db: image: postgres

web: build: .



5

command: bundle exec rails s -e development -p 80 -b '0.0.0.0' volumes:

- .:/compose-app ports:

- "80:80" depends_on:

- db

Vous pouvez remplacer 80 ports (-p 80) par un autre.

La section D?veloppement de database.yml doit ?tre modifi?e pour:

development: &default adapter: postgresql encoding: unicode database: postgres pool: 5 username: postgres password: host: db

Maintenant, vous pouvez cr?er des images ? partir de la commande:

docker-compose build

(Ex?cuter ceci dans le r?pertoire du projet)

Et tout commencer ? partir de:

docker-compose up

Si tout est fait correctement, vous pourrez voir les journaux des rails dans la console.

Fermez la console. ?a va marcher.

Si vous souhaitez supprimer uniquement le conteneur avec l'application rails sans la base de donn?es, vous devez ex?cuter le fichier dans le r?pertoire du projet:

docker-compose stop web docker-compose build web docker-compose up -d --no-deps web

Une nouvelle application contenant des rails sera cr??e et lanc?e.

Lire D?marrer avec docker-compose en ligne:



6

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download