Створення власних образів Docker

Вступ до Docker

Tim Sangster

Software Engineer @ DataCamp

Створення образів за допомогою Dockerfile

Dockerfile використовують, щоб зібрати Docker-образи, які під час запуску створюють контейнер.

Вступ до Docker

Початок Dockerfile

Dockerfile завжди починається з іншого образу, який задається інструкцією 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
Вступ до Docker

Збирання Dockerfile

Побудова Dockerfile створює образ.

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..
Вступ до Docker

Іменування нашого образу

На практиці майже завжди надаємо образам ім'я через прапорець -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
Вступ до Docker

Налаштування образів

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

Використовуйте прапорець -y, щоб уникнути будь-яких запитів:

...
After this operation, 22.8 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Вступ до Docker

Створення нетривіального Dockerfile

Під час збирання образу Docker справді виконує команди після RUN

Час виконання Docker команди RUN apt-get update такий самий, як і коли ви запускаєте її самі!

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
Вступ до Docker

Підсумок

Використання Інструкція Dockerfile
Почати Dockerfile з образу FROM <image-name>
Додати команду оболонки до образу RUN <valid-shell-command>
Гарантувати, що команда не потребує вводу користувача RUN apt-get install -y python3

Використання Команда оболонки
Зібрати образ із Dockerfile docker build /location/to/Dockerfile
Зібрати образ у поточному робочому каталозі docker build .
Вибрати ім'я під час збирання образу docker build -t first_image .
Вступ до Docker

Давайте потренуємось!

Вступ до Docker

Preparing Video For Download...