Если вы являетесь системным администратором Linux и оказываете поддержку разработчикам, скорее всего, вы уже слышали о Docker.
Если нет, то это программное решение облегчит вам жизнь уже сегодня, помогая сократить операционные расходы и ускорить развертывание – среди прочих преимуществ.
Но это не волшебство.
Docker как платформа использует контейнеры – пакеты приложения вместе со всеми инструментами, необходимыми для его работы, чтобы устранить различия между средами.
Другими словами, контейнеризированное программное обеспечение будет работать и управляться последовательно независимо от того, где оно установлено. Кроме того, контейнеры гораздо проще настраивать, запускать, останавливать и поддерживать, чем старые добрые виртуальные машины.
Если вам интересно узнать больше о различиях между этими двумя технологиями, на официальном сайте Docker вы найдете отличное объяснение.
Для примера, в этой статье мы расскажем, как установить Docker на CentOS/RHEL, Rocky/Alma Linux и Debian/Ubuntu, а также запустить контейнер Apache 2.4 из Docker Hub.
Затем мы будем использовать его для обслуживания простой веб-страницы из нашего домашнего каталога – и все это без необходимости установки веб-сервера на нашем хосте.
Установка Docker в системах Linux
Для начала давайте установим Docker с помощью следующей команды curl.
Это позволит загрузить и запустить скрипт, который добавит репозиторий Docker в нашу систему и установит пакет.
# curl -fsSL https://get.docker.com | sh
Далее используйте команду systemctl для запуска главной службы Docker, включения ее запуска при перезагрузке и проверки ее состояния.
# systemctl start docker # systemctl enable docker # systemctl status docker
На этом этапе мы можем просто выполнить.
# docker
выведет все опции, которые мы можем использовать для работы с контейнером.
чтобы просмотреть список доступных команд или получить помощь.
# docker COMMAND --help # docker ps --help
Настройка контейнера Apache
Одна из замечательных особенностей экосистемы Docker заключается в том, что существуют десятки стандартных контейнеров, которые вы можете легко загрузить и использовать.
В следующем примере мы создадим контейнер Apache 2.4 под названием itisgood-web!
Мы будем использовать образ под названием httpd:2.4 из Docker Hub.
Наш план состоит в том, чтобы запросы, сделанные на наш публичный IP-адрес на порт 8080, перенаправлялись на порт 80 в контейнере.
Кроме того, вместо того, чтобы обслуживать контент из самого контейнера, мы будем обслуживать простую веб-страницу из /home/user/website.
Мы сделаем это путем отображения /home/user/website/ на /usr/local/apache2/htdocs/ на контейнере.
Обратите внимание, что для продолжения работы вам нужно будет использовать sudo или войти под пользователем root, и не упускайте слэши в конце каждого каталога.
# sudo docker run -dit --name itisgood-web -p 8080:80 -v /home/user/website/:/usr/local/apache2/htdocs/ httpd:2.4
На этом этапе наш контейнер Apache должен быть запущен.
Теперь давайте создадим простую веб-страницу с именем docker.html в каталоге /home/user/website.
Затем откройте браузер на Server-IP:8080/docker.html (где Server-IP – это публичный IP-адрес вашего хоста).
Перед вами должна появиться страница, которую мы создали ранее.
При желании вы можете остановить контейнер.
$ sudo docker stop itisgood-web
и удалите его:
$ sudo docker rm itisgood-web
Чтобы завершить очистку, вы можете удалить образ, который использовался в контейнере (пропустите этот шаг, если вы планируете создать другие контейнеры Apache 2.4 в ближайшее время).
$ sudo docker image remove httpd:2.4
Обратите внимание, что во всех вышеописанных шагах нам не пришлось устанавливать веб-сервер на нашем хосте.
Заключение
В этой статье мы объяснили, как установить Docker и управлять контейнером.
Если вы хотите узнать больше о Docker, мы уже опубликовали серию статей, в которых рассказывается о том, как устанавливать Docker, запускать приложения в контейнерах и автоматически создавать образы docker с помощью dockerfile.
- 🐳 Настройка hostname в Docker Compose
- 🐳 Docker Compose Up или Start и Down или Stop: в чем разница
- 🐳 Как запустить ONLYOFFICE Docs через контейнер Docker
- 🐳 Как обмениваться данными между контейнером Docker и хост-системой с помощью томов
- 🐳 Как удалить все Docker контейнеры с помощью одной команды
- 🐳 Быстрый способ удалить все образы Docker с вашего хоста
- 🐳 Как обновить образ Docker c новыми изменениями?
- 🐳 Docker Compose Up или Start и Down или Stop: в чем разница
- 🐳 Как использовать docker-compose для установки WordPress
- 🐳 Как обмениваться данными между контейнером Docker и хост-системой с помощью томов
- 🐳 Как узнать все версии образа Docker ?