Создание и развертывание образа и контейнера Docker

20/12/2023 |
Loading...

Это руководство проведёт вас через процесс контейнеризации приложения с использованием Docker. Вы напишете Dockerfile, соберёте образ, запустите его как контейнер и, при желании, отправите в Docker Hub.


Шаг 1: Создание Dockerfile

В корне вашего проекта создайте файл с именем (без расширения).Dockerfile

Пример (приложение на Python Flask):

# Базовый образ FROM python:3.10-slim  # Установка рабочей директории WORKDIR /app  # Копирование всех файлов проекта COPY . .  # Установка зависимостей RUN pip install --no-cache-dir -r requirements.txt  # Открытие порта приложения EXPOSE 5000  # Команда для запуска приложения CMD ["python", "app.py"] 

Для других языков, таких как Node.js или Java, измените базовый образ и команды.


Шаг 2: Сборка Docker-образа

Откройте терминал, перейдите в директорию вашего проекта и выполните:

docker build -t my-app-image . 
  • -t my-app-image: Присваивает образу тег для удобства обращения.

  • .: Указывает на текущую директорию, содержащую Dockerfile.


Шаг 3: Запуск Docker-контейнера

docker run -d -p 5000:5000 --name my-app-container my-app-image 
  • -d: Запуск в фоновом режиме (detached).

  • -p 5000:5000: Сопоставляет порт хоста с портом контейнера.

  • --name: Присваивает контейнеру пользовательское имя.


Шаг 4: Проверка контейнера

Чтобы убедиться, что он работает:

docker ps 

Получите доступ к вашему приложению, перейдя по адресу:

http://localhost:5000 

(Опционально) Шаг 5: Остановка и удаление

Остановите контейнер:

docker stop my-app-container 

Удалите контейнер:

docker rm my-app-container 

Удалите образ:

docker rmi my-app-image 

(Опционально) Шаг 6: Отправка в Docker Hub

  1. Войдите в Docker:

    docker login 
  2. Пометьте образ:

    docker tag my-app-image yourusername/my-app-image 
  3. Отправьте образ:

    docker push yourusername/my-app-image 

Теперь вы можете загрузить этот образ где угодно с помощью:

docker pull yourusername/my-app-image 

Заключение

Используя Docker, вы упаковали своё приложение в лёгкий, переносимый контейнер, который работает одинаково в разных средах. Независимо от того, развёртываете ли вы локально, на промежуточной или производственной среде, Docker гарантирует, что ваше приложение ведёт себя одинаково везде. Этот подход упрощает разработку, тестирование и развёртывание, делая ваши рабочие процессы быстрее и надёжнее.

Получайте эксклюзивные предложения и акции!

Будьте в курсе последних предложений, скидок и специальных акций.

Update cookies preferences