Domyślne sterowniki: bridge, host, null, overlay Czytaj dalej Docker – Network
Kategoria: Docker
Docker – kontenery
Działająca instancja obrazu nazywana jest kontenerem. Obraz tylko do odczytu otrzymuje na samej górze warstwę do odczytu-zapisu, inicjuje porty sieciowe, limity, identyfikator i inne ustawienia potrzebne do działania.
Czytaj dalej Docker – kontenery
Docker – obrazy, warstwy
Dokumentacja online: https://docs.docker.com/
Dockerfile – budowanie obrazu
Składnia – gdy jest już gotowy Dockerfile
# docker build [OPCJE] <ŚCIEŻKA lub ADRES URL> | - - ścieżka lub URL - określa kontekst, położenie plików - COPY, ADD, ... szukają plików w kontekście budowania - ścieżka określa wszystkie podkatalogi, - . (kropka) bieżący katalog z plikiem Dockerfile - URL - repozytorium git z wszystkimi podmodułami - cały kontekst jest wysyłany do demona budowania # docker build -help
Dockerfile – STOPSIGNAL, HEALTHCHECK, SHELL
STOPSIGNAL – określa jaki sygnał wywołania systemowego powinien zostać wysłany do kontenera w celu zakończenia go Czytaj dalej Dockerfile – STOPSIGNAL, HEALTHCHECK, SHELL
Dockerfile – ARG, ONBUILD
ARG – przekazuje Dockerowi argument – do polecenia docker build
Dockerfile – VOLUME, WORKDIR
VOLUME – tworzy punkt podłączenia danych kontenera. Wolumen to stronie kontenera podajemy jawnie, wolumen po stronie hosta może być podany jawnie lub będzie mapowany automatycznie na katalog w strukturze katalogów dockera Czytaj dalej Dockerfile – VOLUME, WORKDIR
Dockerfile – EXPOSE, RUN, USER
Informuje że kontener nasłuchuje na określonych portach sieciowych – docker zezwala na przychodzący ruch sieciowy do kontenera z innych kontenerów tego hosta. Nie udostępnia automatycznie hostowi portów kontenera.
EXPOSE 80 EXPOSE 443 docker run --expose 80 ... docker run --expose 443 ...
Dockerfile – LABEL, ENV
LABEL – dodaje informacje opisowe (metadane) do obrazu. Etykiety są addytywne. Te same klucze nadpisują wartości. Czytaj dalej Dockerfile – LABEL, ENV
Dockerfile – FROM, ADD, COPY
Dockerfile – plik tekstowy, bez rozszerzenia w katalogu głównym projektu. Dodajemy do repozytorium git. Buduje nowy obraz w oparciu o obraz bazowy.
- # to jest komentarz - instrukcje piszemy WIELKIMI LITERAMI (mimo iż Docker nie rozróżnia wielkości liter) - każda instrukcja tworzy nową warstwę - należy scalać wiele instrukcji w jedną (o ile to możliwe) - ważna jest kolejność - w tej kolejności będą tworzone warstwy - ostatnie instrukcje to CMD, ENTRYPOINT
Docker – wolumeny
Mapowanie wolumenu hosta na kontener – dostęp z poziomu kontenera i hosta
# docker run -v /host_dir/:kontener_dir # docker run -it -v /home/john/wwwdir/:/data ubuntu # docker volume ls - sprawdzenie nazwy
Docker – porty, połączenie kontenerów
Udostępnienie portów
EXPOSE (Dockerfile) - udostępnione porty są otwarte dla innych kontenerów --expose - tryb wykonawczy docker run - możliwy zakres portów. Nie mapuje portów hosta. # docker run --expose=1000-200 ... -p - jawne mapowanie portów z hostem (tryb wykonawczy) np. # docker run -p 7000-8000:7000-8000 ... # docker run --name nginx -d -p 8080:80 nginx # docker run --name nginx -d -p 8080:80 -p 443:443 nginx -P - mapowanie dynamiczne - proty hosta wybrane losowo dla każdego portu w EXPOSE lub --expose # docker run --name nginx -d -P nginx
Docker – network
Komendy dockera
Uruchomienie kontenera w trybie interaktywnym – katalog projektu pusty Czytaj dalej Komendy dockera
Docker – instalacja linux
# apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
# curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Docker – after installation Windows
Przykładowe ściągnięcie obrazu getting-started, uruchomienie konternera i wrzucenie obrazu do docker huba:
# docker run --name repo alpine/git clone https://github.com/docker/getting-started.git # docker cp repo:/git/getting-started . # cd getting-started # docker run -d -p 80:80 --name docker-tutorial docker101tutorial # docker tag docker101tutorial jornathanx/docker101tutorial # docker push jornathanx/docker101tutorial