Начало работы с Docker: понимание трех основных элементов Docker

Прошлое и настоящее Докера

Основная концепция — «Создай, отправь и запусти любое приложение где угодно», то есть упакуй один раз и запускай где угодно.

Раньше при настройке рабочей среды приложения на сервере нам приходилось устанавливать различные компоненты. Например, в среде JavaWeb нам приходилось устанавливать Tomcat, И т.д. Установить и настроить эти вещи непросто, и они не кроссплатформенные. Если мы установим эти среды на Windows, Даже если операционная система не является кросс-операционной, очень проблематично перенести приложение на другой сервер с той же операционной системой.

Появление технологии контейнеризации Linux решило эту проблему, и на её основе был разработан Docker. Приложения можно запускать в контейнерах Docker, которые совместимы со всеми операционными системами, обеспечивая кроссплатформенную и кросссерверную поддержку. Достаточно лишь один раз настроить среду, и её можно развернуть на других машинах одним щелчком мыши, что значительно упрощает работу.

Установка и настройка Docker

Здесь я в основном расскажу об установке Docker в Ubuntu и Windows. Для других операционных систем вы можете поискать руководства по установке.

Поскольку скорость доступа к официальному сайту Docker в Китае невысокая, рекомендуется загрузить образ с DaoCloud, который работает очень быстро:

https://get.daocloud.io/

Окна

Сначала перейдите на страницу загрузки Docker:

https://get.daocloud.io/

в случае Загрузите Docker для Windows напрямую. Если вы используете систему до Windows 10, скачайте Docker Toolbox. После завершения загрузки нажмите кнопку «Далее» по умолчанию, чтобы завершить установку.

Уведомление:Для запуска Docker в Windows необходимо включить Intel Virtual Technology в BIOS. Если Docker не открывается и появляется сообщение об ошибке, найдите соответствующие руководства для вашей модели компьютера.

Убунту

  • Установить Docker можно с помощью установочного источника Ubuntu, выполнив следующие две команды:

$ sudo apt-get update
$ sudo apt-get install docker.io

  • Однако Docker, установленный с помощью собственного источника установки, не является последней версией. Рекомендуется установить последнюю версию следующим образом:

$ curl -sSL https://get.daocloud.io/docker | sh

  • После завершения установки вы можете использовать команду docker version для просмотра информации о версии docker.

Уведомление:Обычно должна отображаться информация о клиенте и сервере. Если информация о сервере отсутствует, это означает, что служба не запущена. В этом случае её необходимо запустить командой service docker start.

Удаление Docker в Ubuntu

Если вы установили неправильную версию, вы можете удалить ее и переустановить.
$ sudo apt-get remove --purge docker.io
$ rm -rf /var/lib/docker

Основные концепции Docker

В Docker есть три основные концепции:

  • репозиторий
  • изображение
  • контейнер

Использование хранилищ в Docker для управления образами очень похоже на Git. Среда выполнения приложения, которую мы хотим настроить, — это образ, например Если у нас нет локального образа, нам нужно загрузить его из удалённого репозитория. При запуске образа его копия копируется и запускается в контейнере. Если мы изменим содержимое контейнера, мы также можем закоммитить его и сохранить как новый образ.

Первый экземпляр Docker

Здесь мы используем Nginx в качестве примера, чтобы продемонстрировать процесс запуска приложения в Docker.

Запуск Nginx делится на три этапа:

  • Загрузите образ nginx
  • Запустите контейнер nginx
  • Отображение портов nginx

Извлечь изображение

Сначала найдите nginx в официальном репозитории Docker, найдите тот, где есть слово «official», щелкните по нему и скопируйте команду pull.

https://hub.docker.com

Выполнение этой команды загрузит образ локально. Чтобы просмотреть локальный образ, выполните команду «docker images».

На самом деле, команда docker pull nginx — это сокращённая форма. Полная команда должна выглядеть так:
$ docker pull registry.hub.docker.com/library/nginx
Полная команда добавляет адрес сервера регистрации перед nginx. Поскольку этот адрес используется по умолчанию для docker pull, его можно опустить.

Почему я это говорю? Потому что загрузка образов из официального репозитория очень медленная, а иногда и вовсе не удаётся. Если изменить адрес регистрационного сервера на домашний, можно ускорить загрузку.

Зеркальное ускорение

В Китае существует множество хранилищ изображений. В этой статье мы расскажем об использовании Alibaba Cloud. Позже мы также расскажем, как загружать собственные изображения в Alibaba Cloud. Этот сервис бесплатный.

Посетите этот адрес:

https://cr.console.aliyun.com

Если у вас нет учётной записи Alibaba Cloud, зарегистрируйте её самостоятельно. На странице выше вы увидите свой эксклюзивный адрес ускорения и способы установки для различных систем. Просто следуйте инструкциям по установке.

Запустите контейнер nginx

После загрузки образа выполните следующую команду, чтобы запустить его.
$ docker run -d nginx
Эта команда запускает nginx в фоновом режиме. Без -d он запускается в приоритетном режиме. После запуска мы пока не можем получить к нему доступ. Для доступа к нему необходимо сопоставить порт nginx в контейнере с внешним портом.

Отображение портов nginx

$ docker run -d -p 8080:80 nginx
По сравнению с предыдущей командой добавлено только одно -п Параметр, за которым следует порт. Здесь я сопоставляю порт 8080 локальной машины с портом 80 в контейнере. Перейдя по адресу localhost:8080 в браузере, вы увидите страницу приветствия nginx.

Базовые операции с изображениями и контейнерами

Зеркальная операция

  • Просмотреть локальное изображение

Образы докера $

  • Добавить теги к изображению

$ docker tag старый-тег новый-тег

Новое изображение тега имеет тот же идентификатор, что и исходное. Фактически, они указывают на один и тот же файл изображения, но с разными псевдонимами.

  • Удаление изображения

$ docker rmi image-id/image-tag

Уведомление:Чтобы удалить образ, необходимо сначала удалить контейнер, который его использует. Хотя можно удалить образ принудительно, это не рекомендуется. Кроме того, можно удалить образ по тегу или идентификатору. Если идентификатор совпадает, удалите его по тегу.

Контейнерные операции

  • Посмотреть запущенные контейнеры

$ докер ps

  • Остановить работающий контейнер

$ docker stop идентификатор контейнера

Идентификатор контейнера не обязательно вводить полностью, главное, чтобы он позволял различать два контейнера.

  • Просмотреть все контейнеры

$ докер ps -a

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

$ docker rm идентификатор контейнера

Перед удалением контейнера его необходимо остановить.

  • Сохранить работающий контейнер как изображение

$ docker commit контейнер-id образ-тег

Специальное примечание:Если вы измените контейнер, не сохранив его как новый образ, все изменения не будут сохранены при удалении контейнера. В следующей статье будут представлены альтернативные методы хранения данных Docker, которые могут решить эту проблему. Кроме того, вы можете указать имя после этой команды, не указывая тег; значение по умолчанию — «latest».

  • Вход в контейнер

$ docker exec -it контейнер bash

Контейнер Docker также имеет файловую систему, похожую на Linux, и может использовать некоторые команды Linux. Чтобы выйти из контейнера, введите

Уведомление:В некоторых образах bash отсутствует. Например, если выполнить команду docker pull daocloud.io/library/nginx:1.13.8-alpine-perl, эта команда сообщит об ошибке. В этом случае для установки соединения можно использовать sh:
$ docker exec -it контейнер /bin/sh

  • Копировать файлы в контейнер

$ docker cp file container-id:newfile

  • Копировать файлы из контейнера за пределы контейнера

$ docker cp контейнер-id:файл новый_файл

Команда копирования файлов из контейнера за пределы контейнера выполняется вне контейнера.

Импорт и экспорт изображений и контейнеров

Импорт и экспорт изображений

  • Экспорт изображения

$ docker save -o name.tar image-tag

  • Импорт изображения

$ docker load --input name.tar

Импорт и экспорт контейнеров

  • Экспорт контейнера

$ docker export -o имя.tar идентификатор-контейнера

  • Импортируйте контейнер (docker import name.tar image-tag)

Импорт контейнера фактически импортирует образ.

Отправьте свое изображение на удаленный склад

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

Хранилище размещается на сервере регистрации. Одно хранилище обслуживает только одно изображение, и одно изображение может иметь несколько версий.

Загрузите образ в Docker Hub.

  • Доступ к Docker Hub (серверу регистрации):

https://hub.docker.com/

  • Если у вас нет учетной записи, зарегистрируйте ее самостоятельно, затем нажмите «Создать репозиторий», чтобы создать репозиторий на следующей странице.
  • Например, мое имя: веб-сервер, а имя моего склада: stormxing/web-server
  • Затем войдите в Docker Hub локально, используя следующую команду:
  • Если мы хотим загрузить образ в Docker Hub, имя образа должно совпадать с именем репозитория. Для этого можно создать новый тег для образа. Например, для образа nginx можно создать новый тег stormxing-webserver. Если версия не указана, по умолчанию будет установлена последняя версия.
  • Наконец, просто нажмите на него. После завершения вы увидите своё изображение в разделе тегов на странице репозитория.

Загрузите изображение в репозиторий Alibaba Cloud.

Хотя Docker Hub может загружать образы, скорость слишком низкая. Лучше использовать более быстрый внутренний хаб, например Alibaba Cloud.

  • Сначала войдите по этому адресу, создайте склад, а затем установите пароль для входа:

https://cr.console.aliyun.com

  • Создайте склад и выберите локальный склад
  • Наконец, руководство по эксплуатации Alibaba Cloud очень подробное и по сути совпадает с описанными выше шагами, поэтому я не буду вдаваться в подробности.

Подвести итог

В этой статье в основном описывается роль Docker,Три основных компонента DockerЗдесь также объясняется, как загрузить собственный образ в удаленный репозиторий.

1/5 - (1 голос)

Ответить

Ваш адрес электронной почты не будет опубликован. Обязательные поля помечены *