Dockerfile Tydzien 3

Kubernetes dla każdego – sztuka konteneryzacji

Definicja obrazu

FROM scratch
ADD https://github.com/docker-library/hello-world/blob/master/amd64/hello-world/hello .
CMD ["/hello"]
docker build -t mybaseimage .

Definicja kontenera (Dockerfile + Docker Compose)

LABEL Metadane obrazu

ENV Zmienne środowiskowe dla aplikacji w kontenerze

ADD / COPY Kopiowanie plików do kontenera

ENTRYPOINT Operacja która zostanie wykonana na działającym już kontenerze

WORKDIR Poruszanie się po strukturze katalogów w kontenerze

ARG zmienne używane wewnątrz Dockerfile, można je dołączyć do polecania DOCKERBUILD

USER zdefiniowanie użytkownika oraz jego grupy w kontekście którego będzie uruchomiony kontener, dla poleceń:RUN CMD ENTRYPOINT

# Komentarze

RUN pozwala zainstalować aplikacje i wymagane przez nią pakiety, wykonuje polecanie na bieżącym obrazie i tworzy jego nową wartwę

Warstwy pośrednie (cachowane) tworzone są za pomocą komend COPY, ADD oraz RUN

Docker Compose

docker-compose.yaml

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}

Uruchomienie:

docker-compose up -d

Zatrzymanie:

docker-compose stop

Usunięcie kontenerów ze środowiska:

docker-compose rm
docker ps -a