[Milight Design Inhouse Study Group # 5] Lesen Sie docker-compose.yml und Dockerfile Zeile für Zeile

Erstellen der stärksten Laravel-Entwicklungsumgebung mit Docker [Neue Ausgabe] --Qiita Werfen wir einen Blick darauf, was die in "docker-composer.yml" und "Dockerfile" verwendeten Zeilen für Zeilen tun.

https://github.com/ucan-lab/docker-laravel

docker-compose.yml

version: "3.8" #① Geben Sie die Version an, die in der Docker-Datei verwendet werden soll
volumes: #(2) In der VM ist ein Volume-Bereich gesichert
  db-store:
  php-fpm-socket:
services: #③ Jeder Dienst ist ein Container
  app: #④ Dienstname (Sie können ihn beliebig hinzufügen)
    build: ./docker/php #⑤ Ich baue hier mit der Docker-Datei
    volumes:
      - php-fpm-socket:/var/run/php-fpm #⑥ Im Bereich des VM-Körpers im Container/var/run/php-fpm ist montiert
      - ../backend:/work/backend

  web:
    build: ./docker/nginx
    ports:
      - 80:80
    volumes:
      - php-fpm-socket:/var/run/php-fpm
      - ../backend:/work/backend

  db:
    build: ./docker/mysql
    volumes:
      - db-store:/var/lib/mysql
    ports:
      - 3306:3306

Referenz zur Dateiversion 3 erstellen | Docker-Dokument Wie die Dateiänderungen geschrieben werden, hängt von der Spezifikation dieser Version ab

(2) In Docker für Mac befindet sich eine VM, und ein Bereich zum Mounten von Containerdaten ist gesichert. Daten verschwinden auch dann nicht, wenn der Container durch Mounten auf der VM gelöscht wird Sie können ihm einen beliebigen Namen geben.

--Bedienung

docker-compose ps
        Name                      Command               State                 Ports              
-------------------------------------------------------------------------------------------------
docker-laravel_app_1   docker-php-entrypoint php-fpm    Up      9000/tcp                         
docker-laravel_db_1    docker-entrypoint.sh mysqld      Up      0.0.0.0:3306->3306/tcp, 33060/tcp
docker-laravel_web_1   /docker-entrypoint.sh ngin ...   Up      0.0.0.0:80->80/tcp    

Dockerfile

MySQL

https://github.com/ucan-lab/docker-laravel/blob/master/infra/docker/mysql/Dockerfile

#① Vom Dockerhub zum Mysql8.0 Bilder erhalten
FROM mysql:8.0
#② LABEL ist eingestellt
LABEL maintainer="ucan-lab <[email protected]>"

#(3) Der Umgebungsvariablen des Betriebssystems wird ein Wert hinzugefügt.
ENV TZ=UTC \ #Zeitzone
  #Die von MYSQL angegebene Umgebungsvariable wird angegeben.
  MYSQL_DATABASE=laravel_local \
  MYSQL_USER=phper \
  MYSQL_PASSWORD=secret \
  MYSQL_ROOT_PASSWORD=secret

#④ Die Hostdatei wird in den Container kopiert
COPY ./my.cnf /etc/my.cnf

-① Das Bild wird von https: //hub.docker.com / _ / mysql aufgenommen -Wenn Sie nicht schreiben: 8.0, erhalten Sie die neueste Version ――② Nach Von gibt es ein Publikum, das den Betreuer mit Etikett schreibt. ――③ Wenn Sie die Umgebungsvariable an das MySQL-Image übergeben, wird sie vom offiziellen Image für Sie festgelegt.

bauen

13:01:24 ❯ docker build -t mysql_image .
Sending build context to Docker daemon   2.56kB
Step 1/4 : FROM mysql:8.0
 ---> 0d64f46acfd1
Step 2/4 : LABEL maintainer="ucan-lab <[email protected]>"
 ---> Using cache
 ---> ef5acb641867
Step 3/4 : ENV TZ=UTC   MYSQL_DATABASE=laravel_local   MYSQL_USER=phper   MYSQL_PASSWORD=secret   MYSQL_ROOT_PASSWORD=secret
 ---> Using cache
 ---> 3eb31d9f4c84
Step 4/4 : COPY ./my.cnf /etc/my.cnf
 ---> Using cache
 ---> c064e3fa414a
Successfully built c064e3fa414a
Successfully tagged mysql_image:latest
13:08:35 ❯ docker images                
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
mysql_image          latest              f9666eb795b6        8 seconds ago       544MB

Versuchen Sie, den Container zu starten

Versuchen Sie, Ubuntu auf dem Docker-Hub zu starten

13:08:43 ❯ docker run -it ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
54ee1f796a1e: Pull complete 
f7bfea53ad12: Pull complete 
46d371e02073: Pull complete 
b66c17bbf772: Pull complete 
Digest: sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Status: Downloaded newer image for ubuntu:latest
root@d9d9fe415292:/# exit
exit
$ docker rm <CONTAINER ID>

--Lösche Bild

$ docker rmi <IMAGE ID>

Referenzartikel

Recommended Posts

[Milight Design Inhouse Study Group # 5] Lesen Sie docker-compose.yml und Dockerfile Zeile für Zeile
[Inhouse-Lernsitzung] Java-Grundlagen - Lambda-Ausdruck und Stream-API - (13.07.2017)
[Inhouse-Studiensitzung] Behandlung von Java-Ausnahmen (26.04.2017)