 
 Docker je kontejnerizační platforma, která vám umožňuje rychle vytvářet, testovat a nasazovat aplikace jako přenosné, soběstačné kontejnery, které lze spustit prakticky kdekoli.
Docker Composeje nástroj, který vám umožňuje definovat a organizovat vícekontejnerové aplikace Docker. Ke konfiguraci kontejnerů, sítí a svazků aplikace používá soubor YAML.
Compose lze použít pro různé účely. Nasazení aplikací s jedním hostitelem, automatizované testování a místní vývoj jsou nejoblíbenější případy použití Docker Compose.
Tento tutoriál vysvětluje, jak nainstalovat nejnovější verzi Docker Compose na Debian 10, Buster. Prozkoumáme také základní koncepty a příkazy Docker Compose.
Předpoklady #
Než budete pokračovat, ujistěte se, že jste splnili následující předpoklady:
- Přihlášeni jako uživatel s právy sudo.
- Na svém počítači Debian 10 máte nainstalovaný Docker.
Instalace Docker Compose na Debian 10 #
Instalační balíček Docker Compose je k dispozici v oficiálních repozitářích Debianu 10, ale nemusí se vždy jednat o nejnovější verzi. Doporučený přístup je nainstalovat Docker Compose z úložiště GitHub Docker.
 V době psaní tohoto článku je nejnovější stabilní verze Docker Compose verze 1.23.1 . Před stažením binárního souboru Compose navštivte stránku vydání úložiště Compose na GitHuband a zkontrolujte, zda není k dispozici nová verze ke stažení.
K instalaci nejnovější verze Docker Compose na Debian 10 použijte následující kroky:
-  Stáhněte si binární soubor Docker Compose do /usr/local/binadresář swgetnebocurl:sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-  Použijte chmodaby byl binární soubor Compose spustitelný:sudo chmod +x /usr/local/bin/docker-compose
-  Pro ověření instalace použijte následující příkaz, který vytiskne novou verzi: docker-compose --versionVýstup bude vypadat nějak takto: docker-compose version 1.23.1, build b02f1306
Začínáme s Docker Compose #
V této části si ukážeme, jak nastavit místní vývojové prostředí WordPress pomocí Docker Compose.
Vytvořte adresář pro projekt a přejděte do něj:
mkdir wordpress_app && cd wordpress_app
 Otevřete textový editor a vytvořte název souboru s názvem docker-compose.yml :
nano docker-compose.ymlVložte následující obsah:
docker-compose.ymlversion: '3.7'
services:
  db:
    image: mysql:8.0
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
  wordpress:
    image: wordpress
    restart: always
    volumes:
      - ./wp_data:/var/www/html
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: password
    depends_on:
       - db
volumes:
    db_data:
    wp_data:
Pojďme si vysvětlit kód řádek po řádku
První řádek určuje verzi souboru Compose. Existuje několik různých verzí formátu souboru Compose s podporou konkrétních vydání Dockeru.
 Dále definujeme dvě služby, db a wordpress . Každá služba vytvoří při spuštění Docker Compose samostatný kontejner.
 db služba:
- Obrázek je nastaven na mysql:8.0obraz. Pokud obrázek není přítomen, Compose jej stáhne z veřejného úložiště Docker Hub. Řádek začínajícícommandpřepíše výchozí příkaz.
- restart: alwayszásada přikazuje Compose restartovat kontejner, pokud selže.
- Kontejner bude používat pojmenovaný svazek db_datapro zachování databáze.
- Definuje proměnné prostředí pro mysql:8.0obrázek.
 wordpress služba:
- Používá wordpressobrázek.
- Připojí wp_dataadresář na hostiteli do/var/lib/mysqluvnitř kontejneru.
- Přeposílá vystavený port 80na kontejner na port8080na hostitelském počítači.
- Definuje proměnné prostředí pro wordpressobrázek.
- depends_oninstrukce definuje závislost mezi dvěma službami. V tomto příkladu- dbbude spuštěn před- wordpress.
Z adresáře projektu spusťte zásobník WordPress spuštěním následujícího příkazu:
docker-compose upVýstup by měl vypadat nějak takto:
...
] /usr/sbin/mysqld: ready for connections. Version: '8.0.18'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.
db_1_99946702ac7e | 2019-12-15T21:37:29.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
...
 Docker Compose stáhne obrázky, spustí kontejnery a vytvoří wp_data adresář v adresáři vašeho projektu.
 Zadejte http://0.0.0.0:8080/ ve vašem prohlížeči a uvidíte standardní instalační obrazovku WordPress.
V tuto chvíli je aplikace WordPress spuštěna a můžete na ní začít pracovat.
 Chcete-li zastavit psaní, stiskněte CTRL+C .
 Skládání můžete také spustit v odděleném režimu pomocí -d možnost:
docker-compose up -dChcete-li zobrazit spuštěné kontejnery dockeru, použijte následující příkaz:
docker-compose ps                 Name                               Command               State          Ports        
------------------------------------------------------------------------------------------------------
wordpress_app_db_1_99946702ac7e          docker-entrypoint.sh --def ...   Up      3306/tcp, 33060/tcp 
wordpress_app_wordpress_1_a428d8408817   docker-entrypoint.sh apach ...   Up      0.0.0.0:8080->80/tcp 
Chcete-li zastavit služby, když Compose běží v odděleném režimu, použijte:
docker-compose stop
 Pokud chcete kontejnery úplně odstranit, použijte down možnost:
docker-compose down
 Předání --volumes přepínač také odstraní objemy dat:
docker-compose down --volumesOdinstalace Docker Compose #
Pokud potřebujete odinstalovat Docker Compose, můžete binární soubor jednoduše odebrat zadáním:
sudo rm /usr/local/bin/docker-compose