0Pricing
DevOps Bootcamp · Lekcja

Poznawanie plików Dockerfile

Poznaj składnię i typowe instrukcje używane w plikach Dockerfile do definiowania sposobu budowania obrazu.

Poznawanie plików Dockerfile to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Czym jest Dockerfile?

Wyobraźmy sobie przepis na pieczenie ciasta. Dockerfile jest bardzo podobny! To zwykły plik tekstowy zawierający wszystkie instrukcje potrzebne Dockerowi do automatycznego zbudowania obrazu Dockera.

Zamiast mieszać składniki, wskazujemy Dockerowi, jakiego bazowego systemu operacyjnego użyć, jakie oprogramowanie zainstalować i jak skonfigurować aplikację wewnątrz obrazu.

Poznawanie plików Dockerfile — ilustracja 1

Korzyści: automatyzacja budowania

Pliki Dockerfile przynoszą wiele korzyści w procesie tworzenia oprogramowania:

  • Automatyzacja: Koniec z ręcznymi czynnościami! Docker za każdym razem buduje obrazy w spójny sposób.
  • Kontrola wersji: Pliki Dockerfile są kodem, więc można śledzić ich zmiany za pomocą Git.
  • Powtarzalność: Każdy, kto ma plik Dockerfile, może zbudować dokładnie taki sam obraz.
  • Przejrzystość: Można dokładnie sprawdzić, co znajduje się w obrazie.

Podstawowa struktura pliku Dockerfile

Dockerfile to lista instrukcji wykonywanych w kolejności od góry do dołu. Każda instrukcja tworzy nową warstwę obrazu.

Podstawowa składnia jest prosta:

INSTRUCTION arguments

Komentarze zaczynają się od #, tak jak w wielu językach programowania. Instrukcje Dockera nie rozróżniają wielkości liter, ale przyjętą konwencją jest stosowanie wielkich liter.

Wybór obrazu bazowego za pomocą FROM

Każdy plik Dockerfile musi zaczynać się od instrukcji FROM. Określa ona obraz bazowy, na podstawie którego zostanie zbudowany nowy obraz. Obraz bazowy zwykle zawiera system operacyjny, taki jak Alpine Linux, a czasem także wstępnie zainstalowane oprogramowanie.

Można myśleć o tym jak o wyborze punktu wyjścia — pustego płótna albo płótna z kilkoma podstawowymi kolorami.

FROM alpine:latest

Wykonywanie poleceń za pomocą RUN

Instrukcja RUN służy do wykonywania poleceń podczas procesu budowania obrazu. W tym miejscu instaluje się pakiety, tworzy katalogi lub kompiluje kod.

Każde polecenie RUN tworzy nową warstwę, dlatego łączenie poleceń za pomocą && może pomóc zmniejszyć rozmiar obrazu.

RUN apk update && apk add git

Domyślne polecenie za pomocą CMD

Instrukcja CMD określa domyślne polecenia lub argumenty dla uruchamianego kontenera. W przeciwieństwie do RUN polecenia CMD są wykonywane, gdy kontener startuje, a nie podczas budowania obrazu.

Jeśli podczas uruchamiania kontenera określisz polecenie, na przykład docker run my-image ls, zastąpi ono instrukcję CMD.

CMD ["echo", "Hello from container!"]

Dodawanie plików za pomocą COPY

Instrukcja COPY kopiuje nowe pliki lub katalogi z komputera gospodarza, na którym budowany jest obraz, do systemu plików obrazu Dockera, w określone miejsce.

Zwykle preferuje się ją zamiast ADD, ponieważ jest bardziej przejrzysta i kopiuje wyłącznie pliki lokalne.

COPY ./app /usr/src/app

Katalog roboczy i zmienne środowiskowe

WORKDIR ustawia katalog roboczy dla następujących po niej instrukcji RUN, CMD, ENTRYPOINT, COPY i ADD. Dzięki temu plik Dockerfile jest bardziej przejrzysty.

ENV ustawia zmienne środowiskowe. Zmienne te są dostępne dla kolejnych instrukcji w pliku Dockerfile, a także dla uruchomionego kontenera.

WORKDIR /app
ENV PORT=8080

Informowanie o portach za pomocą EXPOSE

Instrukcja EXPOSE informuje Dockera, że kontener nasłuchuje podczas działania na określonych portach sieciowych. Nie publikuje ona faktycznie portu.

Można traktować ją jako dokumentację. Aby port był rzeczywiście dostępny spoza kontenera, należy użyć flagi -p wraz z poleceniem docker run.

EXPOSE 80
EXPOSE 443

Pierwszy prosty plik Dockerfile

Połączmy wszystkie elementy! Oto podstawowy plik Dockerfile, który konfiguruje obraz Alpine Linux, instaluje pakiet i definiuje domyślne polecenie.

Aby go zbudować, zapisz go jako Dockerfile w pustym katalogu, a następnie uruchom w terminalu polecenie docker build -t my-simple-app ..

FROM alpine:latest

LABEL maintainer="CoddyKit"

RUN apk update && apk add --no-cache bash

WORKDIR /app

CMD ["bash", "-c", "echo 'Hello from my custom Alpine image!' && sleep 3600"]

Quiz dotyczący instrukcji Dockerfile

Sprawdź swoją wiedzę! Które z tych instrukcji są wykonywane podczas procesu budowania obrazu, bezpośrednio modyfikując jego zawartość lub strukturę?

Podsumowanie: najważniejsze informacje o Dockerfile

Zrobili Państwo duży krok w zrozumieniu obrazów Dockera! Dowiedzieliśmy się, że pliki Dockerfile to pliki tekstowe z instrukcjami budowania obrazów, zapewniające istotne korzyści, takie jak automatyzacja i powtarzalność.

Omówione instrukcje:

  • FROM: definiuje obraz bazowy.
  • RUN: wykonuje polecenia podczas budowania.
  • CMD: ustawia domyślne polecenie dla uruchomionego kontenera.
  • COPY: dodaje pliki z komputera gospodarza do obrazu.
  • WORKDIR, ENV, EXPOSE: konfigurują obraz i środowisko kontenera.

Często zadawane pytania

Czy lekcja „Poznawanie plików Dockerfile” jest bezpłatna?

Tak — pełny tekst „Poznawanie plików Dockerfile” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Poznawanie plików Dockerfile”?

Poznaj składnię i typowe instrukcje używane w plikach Dockerfile do definiowania sposobu budowania obrazu. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Poznawanie plików Dockerfile”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Poznawanie plików Dockerfile
  2. Tworzenie niestandardowych obrazów Docker
  3. Warstwy i optymalizacja obrazów
  4. Kompilacje wieloetapowe i mniejsze obrazy
← Powrót do DevOps Bootcamp