Wprowadzenie do Dockera
Tim Sangster
Software Engineer @ DataCamp

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
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..
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
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]
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
| 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