Docker-compose ist ein Befehlszeilentool zum Definieren und Konfigurieren einer Multi-Container-Docker-Anwendung s. Mit anderen Worten können wir sagen, dass Docker Compose verwendet wird, um mehrere Container zu verknüpfen und Anwendungen mit einem einzigen Befehl bereitzustellen. Nehmen wir an, wir möchten eine WordPress-Site in einem Container bereitstellen. Um dies bereitzustellen, benötige ich also einen Webserver-Container (Apache/nginx) und einen Datenbank-Container (mysql/mariadb).
Mit Docker Compose können wir problemlos mehrere Container in unsere Docker-Compose-Datei aufnehmen und auch alle anderen für meine Anwendung erforderlichen Konfigurationen definieren. Das Docker-Compose-Tool kann in Entwicklungs-, Test- und Staging-Umgebungen verwendet werden, abgesehen davon kann es problemlos in CI verwendet werden (Integration wird fortgesetzt ) Arbeitsablauf
In diesem Artikel besprechen wir, wie Docker Compose auf einem vorhandenen Docker-Host installiert wird, und lernen dann, wie Container über den Befehl docker-compose bereitgestellt werden. In unserem vorherigen Artikel haben wir bereits die folgenden Themen besprochen.
- So installieren Sie Docker unter CentOS 7
- Installieren und konfigurieren Sie den Docker Swarm-Modus unter CentOS 7
Ich gehe hier davon aus, dass wir einen vorhandenen Docker-Host in Betrieb haben. Lassen Sie uns nun zu den Installationsschritten des Docker-Compose-Tools springen.
Installationsschritte von Docker Compose
Melden Sie sich bei Ihrem Docker-Host an und führen Sie die folgenden Befehle nacheinander aus
[[email protected] ~]# yum install epel-release -y [[email protected] ~]# yum install python-pip -y [[email protected] ~]# pip install docker-compose
Hinweis:Pip-Version 6.0 oder höher wird empfohlen, damit docker-compose reibungslos funktioniert. Falls die Pip-Version unter 6.0 liegt, führen Sie den folgenden Befehl aus, um sie zu aktualisieren
[[email protected] ~]# pip install --upgrade pip
Überprüfen Sie die Docker-Version mit dem folgenden Befehl
[[email protected] ~]# docker-compose --version docker-compose version 1.15.0, build e12f3b9 [[email protected] ~]#
Bereitstellen von Containern mit dem Docker Compose-Tool
Um Docker-Container mit dem Befehl docker-compose bereitzustellen, erstellen Sie zunächst ein Verzeichnis unter diesem Verzeichnis und erstellen Sie eine Compose-Datei mit dem Namen „docker-compose.yml“. ‘ oder ‚docker-compose.yaml ‘. In der Compose-Datei definieren wir die Dienste für unsere Anwendungen und Container-Images.
Bevor wir mit dem Erstellen einer Compose-Datei beginnen, ziehen wir zunächst WordPress- und MySQL-Container-Images herunter
[[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
Erstellen Sie ein Verzeichnis mit dem Namen „wordpress-site“. ”
[[email protected] ~]# mkdir wordpress-site [[email protected] ~]# cd wordpress-site/ [[email protected] wordpress-site]#
Docker-compose.yml-Datei mit folgendem Inhalt erstellen
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
In der obigen Compose-Datei haben wir zwei Dienste mit den Namen „webserver“ und „dbserver“ definiert, für diese Dienste habe ich auch container image angegeben. Abgesehen davon habe ich Umgebungen angegeben, indem ich das MySQL-Root-Passwort und das WordPress-DB-Passwort erwähnt habe.
Lassen Sie uns unsere Anwendung, d. h. die WordPress-Site, bereitstellen, indem Sie den folgenden Befehl ausführen:
[[email protected] wordpress-site]# docker-compose up
Hinweis: Führen Sie den Befehl „docker-compose up“ in dem Verzeichnis aus, in dem die docker-compose-Datei vorhanden ist.
Der obige Befehl stellt zwei Container mit den Namen „wp_web“ und „wp_db“ bereit. Versuchen Sie, über die URL :
auf Ihre WordPress-Site zuzugreifenhttp://{docker-host-ip}:8080
Befolgen Sie die Anweisungen auf dem Bildschirm, um die WordPress-Installation abzuschließen. Dies bestätigt, dass wir die WordPress-Site mithilfe des Docker-Compose-Tools erfolgreich in den Containern bereitgestellt haben.
Werfen wir einen Blick auf die Optionen des Befehls „docker-compose“
Listen Sie die Container auf, die für unsere Anwendung bereitgestellt werden
[[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]#
Container und seine Dienste stoppen und starten
Drücken Sie entweder Strg+C auf dem Befehl oder führen Sie den folgenden Befehl aus
[[email protected] wordpress-site]# docker-compose stop Stopping wp_web ... done Stopping wp_db ... done [[email protected] wordpress-site]#
Führen Sie „docker-compose start“ aus, um Container und ihre Dienste zu starten
[[email protected] wordpress-site]# docker-compose start Starting dbserver ... done Starting webserver ... done [[email protected] wordpress-site]#
Sehen Sie sich die Containerprotokolle an
Führen Sie den Befehl „docker-compose logs“ aus, um Protokolle von Containern anzuzeigen, und verwenden Sie den Befehl „docker-compose logs {service-name}“
, um die Protokolle eines bestimmten Containers anzuzeigen[[email protected] wordpress-site]# docker-compose logs [[email protected] wordpress-site]# docker-compose logs dbserver
Stop &Remove Container zusammen mit seinem Netzwerk
Mit Hilfe des Befehls „docker-compose down“ können wir Container mit einem einzigen Befehl stoppen und entfernen
[[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]#
Das ist alles aus diesem Tutorial. Weitere Optionen finden Sie unter „docker-compose –help“