Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Введение в докер. Разработка простого докер образа для собственного сервера.

Notifications You must be signed in to change notification settings

sab3ll/SimpleDocker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

3 Commits

Repository files navigation

Simple Docker

Введение в докер. Разработка простого докер образа для собственного сервера.

Содержание

  1. Готовый докер
  2. Операции с контейнером
  3. Мини веб-сервер
  4. Свой докер
  5. Dockle
  6. Базовый Docker Compose

Part 1. Готовый докер

Взять официальный докер образ с nginx и выкачать его при помощи docker pull
Проверить наличие докер образа через docker images
Запустить докер образ через docker run -d [image_id|repository]
Проверить, что образ запустился через docker ps
Посмотреть информацию о контейнере через docker inspect [container_id|container_name]
По выводу команды определить и поместить в отчёт размер контейнера, список замапленных портов и ip контейнера
Остановить докер образ через docker stop [container_id|container_name]
Проверить, что образ остановился через docker ps
Запустить докер с портами 80 и 443 в контейнере, замапленными на такие же порты на локальной машине, через команду run
Проверить, что в браузере по адресу localhost:80 доступна стартовая страница nginx
Перезапустить докер контейнер через docker restart [container_id|container_name]
Проверить любым способом, что контейнер запустился
  • В отчёт поместить скрины:
    • вызова и вывода всех использованных в этой части задания команд;
    • стартовой страницы nginx по адресу localhost:80 (адрес должен быть виден).

Part 2. Операции с контейнером

Прочитать конфигурационный файл nginx.conf внутри докер контейнера через команду exec
Создать на локальной машине файл nginx.conf
Настроить в нем по пути /status отдачу страницы статуса сервера nginx
Скопировать созданный файл nginx.conf внутрь докер образа через команду docker cp
Перезапустить nginx внутри докер образа через команду exec
Проверить, что по адресу localhost:80/status отдается страничка со статусом сервера nginx
Экспортировать контейнер в файл container.tar через команду export
Остановить контейнер
Удалить образ через docker rmi [image_id|repository], не удаляя перед этим контейнеры
Удалить остановленный контейнер
Импортировать контейнер обратно через команду import
Запустить импортированный контейнер
Проверить, что по адресу localhost:80/status отдается страничка со статусом сервера nginx
  • В отчёт поместить скрины:
    • вызова и вывода всех использованных в этой части задания команд;
    • содержимое созданного файла nginx.conf;
    • страницы со статусом сервера nginx по адресу localhost:80/status.

Part 3. Мини веб-сервер

Написать мини сервер на C и FastCgi, который будет возвращать простейшую страничку с надписью Hello World!
Запустить написанный мини сервер через spawn-fcgi на порту 8080
Написать свой nginx.conf, который будет проксировать все запросы с 81 порта на 127.0.0.1:8080
Проверить, что в браузере по localhost:81 отдается написанная вами страничка
Положить файл nginx.conf по пути ./nginx/nginx.conf (это понадобится позже)

Part 4. Свой докер

При написании докер образа избегайте множественных вызовов команд RUN

Написать свой докер образ, который:

1) собирает исходники мини сервера на FastCgi из Части 3
2) запускает его на 8080 порту
3) копирует внутрь образа написанный ./nginx/nginx.conf
4) запускает nginx.

nginx можно установить внутрь докера самостоятельно, а можно воспользоваться готовым образом с nginx'ом, как базовым.

Собрать написанный докер образ через docker build при этом указав имя и тег
Проверить через docker images, что все собралось корректно
Запустить собранный докер образ с маппингом 81 порта на 80 на локальной машине и маппингом папки ./nginx внутрь контейнера по адресу, где лежат конфигурационные файлы nginx'а (см. Часть 2)
Проверить, что по localhost:80 доступна страничка написанного мини сервера
Дописать в ./nginx/nginx.conf проксирование странички /status, по которой надо отдавать статус сервера nginx
Перезапустить докер образ

Если всё сделано верно, то, после сохранения файла и перезапуска контейнера, конфигурационный файл внутри докер образа должен обновиться самостоятельно без лишних действий

Проверить, что теперь по localhost:80/status отдается страничка со статусом nginx

Part 5. Dockle

Просканировать образ из предыдущего задания через dockle [image_id|repository]
Исправить образ так, чтобы при проверке через dockle не было ошибок и предупреждений

Part 6. Базовый Docker Compose

Написать файл docker-compose.yml, с помощью которого:
1) Поднять докер контейнер из Части 5 (он должен работать в локальной сети, т.е. не нужно использовать инструкцию EXPOSE и мапить порты на локальную машину)
2) Поднять докер контейнер с nginx, который будет проксировать все запросы с 8080 порта на 81 порт первого контейнера
Замапить 8080 порт второго контейнера на 80 порт локальной машины
Остановить все запущенные контейнеры
Собрать и запустить проект с помощью команд docker-compose build и docker-compose up
Проверить, что в браузере по localhost:80 отдается написанная вами страничка, как и ранее

About

Введение в докер. Разработка простого докер образа для собственного сервера.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /