Docker се превърна в основен инструмент в разработването и внедряването на приложения, позволявайки създаването на изолирани и възпроизводими среди. Въпреки това, често се нуждаем от повече от предварително изградените изображения, налични в Docker Hub, и тук се намесва възможността да създаваме наши собствени персонализирани изображения с помощта на Dockerfile.
Тази статия ще ви води стъпка по стъпка в създаването на персонализирани изображения с Dockerfile, обяснявайки всичко от основите до оптимизацията и разполагане на вашите контейнери. Ако някога сте искали да разберете как всъщност работи изграждането на изображения на Docker, това е мястото, където да отидете.
Какво е Dockerfile?
Un Докер файл Това е текстов файл, който съдържа серия от инструкции, които Docker интерпретира, за да създаде изображение. Всеки ред в Dockerfile представлява a плащ с качулка в крайното изображение, което позволява оптимизиране и повторно използване на части от строителния процес.
Docker изображенията са базирани на a система от слоеве, което означава, че всеки път, когато се изпълни инструкция в Dockerfile, нов слой се създава върху предишния. Това позволява ефективно използване на съхранение и улеснява повторното използване на части от изображението в бъдещи конструкции. Ако искате да научите повече за това как да оптимизирате съхранението във вашите проекти, препоръчително е да проучите използването на ефективни опции за криптиране.
Основни инструкции в Dockerfile
За да създадем персонализирано изображение, трябва да знаем някои от инструкциите основен които могат да бъдат включени в Dockerfile:
- ОТ: Дефинира базовото изображение, върху което ще бъде изградено нашето персонализирано изображение. Пример:
FROM ubuntu:latest
. - РАБОТА: Позволява ви да изпълнявате команди върху изображението по време на изграждането му. Използва се за монтаж пакети или конфигурирайте изображението. Пример:
RUN apt-get update && apt-get install -y curl
. - КОПИЕ: Копира файлове от файловата система на хоста в изображението. Пример:
COPY app.py /app/
. - CMD: Определя командата, която да се изпълни при стартиране на команда. контейнер въз основа на изображението. Пример:
CMD ["python3", "app.py"]
. - ВХОДНА ТОЧКА: Подобно на CMD, но позволява на контейнера да функционира като a изпълним.
- ENV: Определяне Променливи на средата вътре в контейнера. Пример:
ENV APP_ENV=production
. - РАБОТЕН ДИРЕКТОР: Задайте работна директория вътре в контейнера.
- EXPOSE: Посочете пристанища които контейнерът ще използва.
Стъпки за създаване на персонализирани изображения на Dockerfile
Да предположим, че искаме да създадем изображение за приложение в Питон използвайки Колба. За целта ще следваме следните стъпки:
1. Подгответе средата
Създайте папка за вашето приложение и вътре в нея файл Dockerfile
. Ще ви трябва и файл requirements.txt
с необходими зависимости които вашето приложение изисква.
2. Дефинирайте Dockerfile
Вътре във файла Dockerfile
, пишем следното:
FROM python:3.9 WORKDIR /app COPY requirements.txt /app/ RUN pip install -r requirements.txt COPY . /app/ CMD ["python", "app.py"]
3. Изградете образа
Отворете терминал в папката, където се намира Dockerfile и стартирайте:
docker build -t mi-app .
4. Стартирайте контейнер
За стартиране на a контейнер Въз основа на новосъздаденото изображение използвайте:
docker run -p 5000:5000 mi-app
Най-добри практики за създаване на персонализирани изображения на Dockerfile
- Използвайте леки основни изображения: Изберете минималистични изображения като
alpine
за намаляване на размера на изображението и подобряване на сигурност. - Възползвайте се от кеша: Поръчайте инструкциите на
Dockerfile
така че чести промени да се появяват в края, за да се оптимизира използването на Скривалище. - Изтрийте ненужните файлове: Употреба
.dockerignore
за да избегнете копирането на файлове, които не са необходими вътре в контейнера. - Минимизирайте броя на слоевете: Използвайте същото
RUN
за групиране на команди и намаляване ненужни слоеве.
Как да споделяте персонализирани изображения на Dockerfile
За да споделите вашето изображение с други разработчици или да го внедрите на сървър, можете да го качите в Docker Hub:
1. Влезте в Docker Hub
docker login
2. Етикетирайте изображението
docker tag mi-app usuario/mi-app:v1
3. Качете изображението
docker push usuario/mi-app:v1
Вече всеки може да изтегли и използва вашето изображение с:
docker pull usuario/mi-app:v1
Създаването на персонализирани изображения с Dockerfile е един от най-добрите начини да подобрите своя разполагане и разработка на приложения. Следвайки тези стъпки и добри практики, ще можете да създавате ефективни, сигурни изображения, готови за използване в производствени среди. Споделете това ръководство и помогнете на други потребители да използват инструмента.