Docker-compose è uno strumento a riga di comando per definire e configurare applicazione Docker multi-contenitore S. In altre parole, possiamo dire che docker compose viene utilizzato per collegare più contenitori e distribuire l'applicazione da un singolo comando. Supponiamo di voler distribuire il sito WordPress all'interno di un container, quindi per distribuirlo avrei bisogno di un container Web Server (Apache/nginx) e un container database (mysql/mariadb).
Con Docker Compose possiamo facilmente includere più contenitori all'interno del nostro file di composizione mobile e possiamo anche definire tutte le altre configurazioni richieste per la mia applicazione. Lo strumento Docker-compose può essere utilizzato in ambienti di sviluppo, test e staging, oltre a questi può essere facilmente utilizzato in CI (Continua l'integrazione ) flusso di lavoro
In questo articolo discuteremo come installare Docker Compose su un host Docker esistente e quindi impareremo come distribuire i contenitori dal comando docker-compose. Nel nostro articolo precedente abbiamo già discusso i seguenti argomenti.
- Come installare Docker su CentOS 7
- Installa e configura la modalità Docker Swarm su CentOS 7
Presumo qui che abbiamo un host Docker esistente attivo e funzionante. Ora passiamo ai passaggi di installazione dello strumento di composizione Docker.
Passaggi di installazione di Docker Compose
Accedi al tuo host Docker ed esegui i comandi sotto uno dopo l'altro
[[email protected] ~]# yum install epel-release -y [[email protected] ~]# yum install python-pip -y [[email protected] ~]# pip install docker-compose
Nota:la versione pip 6.0 o successiva è consigliata per il corretto funzionamento di docker-compose. Nel caso in cui la versione di pip sia inferiore alla 6.0, esegui il comando seguente per aggiornarlo
[[email protected] ~]# pip install --upgrade pip
Verifica la versione Docker utilizzando il comando seguente
[[email protected] ~]# docker-compose --version docker-compose version 1.15.0, build e12f3b9 [[email protected] ~]#
Distribuisci contenitori con lo strumento Docker Compose
Per distribuire i contenitori docker con il comando docker-compose , crea prima una directory in quella directory, crea un file di composizione con il nome "docker-compose.yml ' o 'docker-compose.yaml '. Nel file di composizione definiremo i servizi per le nostre applicazioni e le immagini del contenitore.
Prima di iniziare a creare il file di composizione, estraiamo le immagini del contenitore di WordPress e MySQL
[[email protected] ~]# docker pull wordpress [[email protected] ~]# docker pull mysql [[email protected] ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE mysql latest c73c7527c03a 2 days ago 412MB wordpress latest f28808014819 7 days ago 406MB
Crea una directory con il nome “sito wordpress ”
[[email protected] ~]# mkdir wordpress-site [[email protected] ~]# cd wordpress-site/ [[email protected] wordpress-site]#
Crea il file docker-compose.yml con il seguente contenuto
version: '3.0' services: webserver: image: wordpress container_name: wp_web ports: - 8080:80 links: - dbserver:mysql environment: WORDPRESS_DB_PASSWORD: 6zcznAEjLWp79P dbserver: image: mysql:latest container_name: wp_db environment: MYSQL_ROOT_PASSWORD: 6zcznAEjLWp79P
Nel file di composizione sopra abbiamo definito due servizi con il nome "webserver" e "dbserver", per questi servizi ho anche specificato container image . A parte questo, ho specificato gli ambienti citando la password di root di mysql e la password db di wordpress.
Distribuiamo la nostra applicazione, ad esempio il sito WordPress, eseguendo il comando seguente,
[[email protected] wordpress-site]# docker-compose up
Nota: Esegui il comando "docker-compose up" dalla directory in cui esiste il file docker-compose.
Il comando precedente distribuirà due contenitori con il nome "wp_web" e "wp_db". Prova ad accedere al tuo sito WordPress utilizzando l'URL :
http://{docker-host-ip}:8080
Completa le istruzioni sullo schermo per completare l'installazione di WordPress. Ciò conferma che abbiamo distribuito con successo il sito WordPress all'interno dei contenitori utilizzando lo strumento di composizione mobile.
Diamo un'occhiata alle opzioni del comando "docker-compose"
Elenca i container che vengono distribuiti per la nostra applicazione
[[email protected] wordpress-site]# docker-compose ps Name Command State Ports ---------------------------------------------------------------------- wp_db docker-entrypoint.sh mysqld Up 3306/tcp wp_web docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp [[email protected] wordpress-site]#
Interrompi e avvia i container e i suoi servizi
Premi Ctrl+C sul comando o esegui il comando sotto
[[email protected] wordpress-site]# docker-compose stop Stopping wp_web ... done Stopping wp_db ... done [[email protected] wordpress-site]#
Esegui "docker-compose start" per avviare i container e i relativi servizi
[[email protected] wordpress-site]# docker-compose start Starting dbserver ... done Starting webserver ... done [[email protected] wordpress-site]#
Visualizza i registri dei contenitori
Esegui il comando 'docker-compose logs' per visualizzare i log dei contenitori e per visualizzare i log di un contenitore specifico usa il comando 'docker-compose logs {nome-servizio}'
[[email protected] wordpress-site]# docker-compose logs [[email protected] wordpress-site]# docker-compose logs dbserver
Arresta e rimuovi contenitori insieme alla sua rete
Con l'aiuto del comando "docker-compose down" possiamo fermare e rimuovere i contenitori da un singolo comando
[[email protected] wordpress-site]# docker-compose down Stopping wp_web ... done Stopping wp_db ... done Removing wp_web ... done Removing wp_db ... done Removing network wordpresssite_default [[email protected] wordpress-site]#
Questo è tutto da questo tutorial. Per ulteriori opzioni, fare riferimento a "docker-compose –help"