Облачная платформаAdvanced

Основы контейнерного движка

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Контейнерный движок — это открытый движок, который позволяет создавать лёгкие, переносимые и автономные контейнеры для любого приложения.

Установка Docker

Перед установкой Docker получите базовое представление о том, что такое Docker и как он работает. Для получения дополнительной информации см Документация Docker.

Docker совместим почти со всеми операционными системами. Выберите версию Docker, которая лучше всего соответствует вашим требованиям. Если вы не уверены, какую редакцию Docker Community использовать, см https://docs.docker.com/engine/install/.

Note
  • Чтобы использовать Docker для загрузки образов в SWR, версия Docker должна быть от 1.11.2 (включительно) до 24.0.9 (включительно).
  • Сначала привяжите Elastic IP‑адрес, если ваш сервер работает в частной сети, поскольку установка требует подключения к Интернету.

На устройстве с Linux выполните следующие команды для быстрой установки Docker:

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
sudo systemctl daemon-reload
sudo systemctl restart docker

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

В этом разделе рассматриваются шаги использования Dockerfile для создания образа контейнера простого веб‑приложения. Dockerfile — это текстовый файл, содержащий все инструкции, которые пользователь может вызвать в командной строке для создания образа. Образ контейнера — это стек, состоящий из нескольких слоёв. Каждая инструкция создаёт слой.

При использовании браузера для доступа к контейнеризованному приложению, построенному из образ Nginx, вы увидите стандартную приветственную страницу Nginx. В этом разделе вы создадите новый образ на основе образ Nginx чтобы изменить приветственное сообщение на Hello, SWR!

  1. Войдите в устройство, на котором запущен Docker, как пользователь root.
  2. Выполните следующие команды, чтобы создать пустой файл с именем Dockerfile:

    mkdir mynginx

    cd mynginx

    touch Dockerfile

  3. Редактировать Dockerfile.

    vim Dockerfile

    Добавьте следующие инструкции в Dockerfile:

    FROM nginx
    RUN echo '<h1>Hello,SWR!</h1>' > /usr/share/nginx/html/index.html

    В предыдущих инструкциях:

    • FROM: создает слой из базового образа. Действительный Dockerfile должен начинаться с FROM инструкции. В этом примере Nginx образ используется в качестве базового образа.
    • RUN: выполняет команду для создания нового слоя. Одна из её форм записи — RUN <command>. В этом примере echo команда выполняется для отображения Привет, SWR!

    Сохраните изменения и выйдите.

  4. Запустить docker build [опция] <контекстный путь> для создания образа.

    docker build -t nginx:v1 .

    • -t nginx:v1: указывает имя образа и тег.
    • .: указывает путь, где расположен Dockerfile. Всё содержимое в этом пути упаковывается и отправляется в Docker для создания образа.

  5. Выполните следующую команду, чтобы проверить созданный образ. Вывод команды показывает, что образ nginx был создан с тегом v1.

    docker images

Создание пакета образа

В этом разделе описывается, как сжать образ контейнера в .tar или .tar.gz пакет.

  1. Войдите в устройство, где запущен Docker, как пользователь root.
  2. Выполните следующую команду, чтобы перечислить образы.

    docker images

    Проверьте имя и Тег образа, который нужно сжать.

  3. Выполните следующую команду, чтобы сжать образ в пакет.

    docker save [OPTIONS] IMAGE [IMAGE...]

    Note

    OPTIONS: Вы можете установить это в --output или -o, указывая, что образ экспортируется в файл.

    Файл должен быть в формате .tar или .tar.gz.

    Пример:

    $ docker save nginx:latest > nginx.tar
    $ ls -sh nginx.tar
    108M nginx.tar
    $ docker save php:5-apache > php.tar.gz
    $ ls -sh php.tar.gz
    372M php.tar.gz
    $ docker save --output nginx.tar nginx
    $ ls -sh nginx.tar
    108M nginx.tar
    $ docker save -o nginx-all.tar nginx
    $ docker save -o nginx-latest.tar nginx:latest