Tworzenie własnych obrazów Docker

Wprowadzenie do Dockera

Tim Sangster

Software Engineer @ DataCamp

Tworzenie obrazów przy użyciu Dockerfile

Dockerfiles są budowane, aby uzyskać obrazy Docker, które po uruchomieniu tworzą kontener.

Wprowadzenie do Dockera

Rozpoczynanie Dockerfile

Dockerfile zawsze zaczyna się od innego obrazu, wskazanego za pomocą instrukcji FROM.

FROM postgres
FROM ubuntu
FROM hello-world
FROM my-custom-data-pipeline
FROM postgres:15.0
FROM ubuntu:22.04
FROM hello-world:latest
FROM my-custom-data-pipeline:v1
Wprowadzenie do Dockera

Budowanie Dockerfile

Budowanie Dockerfile tworzy obraz.

docker build /location/to/Dockerfile
docker build .
[+] Building 0.1s (5/5) FINISHED
 => [internal] load build definition from Dockerfile
 => => transferring dockerfile: 54B
...
 => CACHED [1/1] FROM docker.io/library/ubuntu
 => exporting to image
 => => exporting layers
 => => writing image sha256:a67f41b1d127160a7647b6709b3789b1e954710d96df39ccaa21..
Wprowadzenie do Dockera

Nadawanie nazwy obrazowi

W praktyce prawie zawsze nadajemy obrazom nazwę za pomocą flagi -t:

docker build -t first_image .
...
=> => writing image sha256:a67f41b1d127160a7647b6709b3789b1e954710d96df39ccaa21..
=> => naming to docker.io/library/first_image 
docker build -t first_image:v0 .
=> => writing image sha256:a67f41b1d127160a7647b6709b3789b1e954710d96df39ccaa21..
=> => naming to docker.io/library/first_image:v0
Wprowadzenie do Dockera

Dostosowywanie obrazów

RUN <valid-shell-command>
FROM ubuntu
RUN apt-get update
RUN apt-get install -y python3

Użyj flagi -y, aby uniknąć monitów:

...
After this operation, 22.8 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Wprowadzenie do Dockera

Budowanie złożonego Dockerfile

Podczas budowania obrazu Docker faktycznie wykonuje polecenia po RUN

Docker wykonujący RUN apt-get update zajmuje tyle samo czasu, co my!

root@host:/# apt-get update
Get:1 http://ports.ubuntu.com/ubuntu-ports jammy InRelease [270 kB]
...
Get:17 http://ports.ubuntu.com/ubuntu-ports jammy-security/restricted arm64 Pack..
Fetched 23.0 MB in 2s (12.3 MB/s)                          
Reading package lists... Done
Wprowadzenie do Dockera

Podsumowanie

Zastosowanie Instrukcja Dockerfile
Rozpocznij Dockerfile od obrazu FROM <image-name>
Dodaj polecenie powłoki do obrazu RUN <valid-shell-command>
Upewnij się, że polecenie nie wymaga danych wejściowych. RUN apt-get install -y python3

Zastosowanie Polecenie powłoki
Zbuduj obraz z Dockerfile docker build /location/to/Dockerfile
Zbuduj obraz w bieżącym katalogu docker build .
Nadaj nazwę podczas budowania obrazu docker build -t first_image .
Wprowadzenie do Dockera

Czas na ćwiczenia!

Wprowadzenie do Dockera

Preparing Video For Download...