Содержание
- 2. Виртуализация Виртуализация на уровне ядра (на уровне операционной системы) Systemd-nspawn
- 3. Виртуализация Что контейнеры, что вир. машины - это все виртуализация: Виртуализация появилась как средство уплотнения окружений
- 4. Виртуализация на уровне железа Гипервизор - или монитор виртуальных машин В VM нельзя иметь ресурсов больше
- 5. Виртуализация на уровне ядра Container engine — это часть ПО, которое принимает пользовательские запросы, создает\ запускает
- 6. Отличия Виртуальная машина: Подразумевает виртуализацию железа для запуска гостевой ОС Может работать любая ОС Хорошо для
- 7. Рабочее окружение Для разработки бекенда часто нужные все возможные сервисы, например: PHP Nginx(Apach) – сервер Mysql
- 8. Рабочее окружение Использование «шпаргалок» Разработчик под каждый сервис пишет свою инструкции, как установить и как настроить
- 9. Рабочее окружение Пример – установка сервиса MeiliSearch 1. echo "deb [trusted=yes] https://apt.fury.io/meilisearch/ /" | sudo tee
- 10. Рабочее окружение Разработка через виртуальные машины – виртуализация на уровне железа Одна ОС, например ubuntu 18.04
- 11. Рабочее окружение Vagrant Инструмент который позволяет автоматизировать процесс создания и настройки вир. машин Файл конфига Vagrantfile
- 12. Рабочее окружение Vagrantfile # vagrant configurate Vagrant.configure(2) do |config| # select the box config.vm.box = 'bento/ubuntu-18.04'
- 13. Пример VDS
- 14. Виртуализация Виртуализация на уровне железа Оверхед на гипервизор, большой образ, медленно
- 15. Виртуализация Виртуализация на уровне ядра (на уровне операционной системы) Systemd-nspawn Большие образы, нет стандарта упаковки, проблема
- 16. Пример LXC LXC — системы контейнеров – виртуализация на уровне ядра lxc launch ubuntu:18.04 web lxc
- 17. Переходим к докеру Меняет философию работы контейнеров 1 процесс - 1 контейнер Все зависимости в контейнере
- 18. Из чего состоит докер Docker cli - утилита по упр. докером - исп. для запуска команд
- 19. Объекты 1ого класса докера Images (образ) - доступный только для чтения шаблон который содержит набор инструкций
- 20. Объекты 1ого класса докера Containers - работоспособный экземпляр или инстанс образа из которого он был создан.
- 21. Образ Образы строятся из множества слоев, все размещаются др. над другом Вместе они представляют единый объект
- 22. Пример Dockerfile: FROM phpmyadmin:latest RUN apt-get -y install curl && rm -rf /var/lib/apt/lists/* ENTRYPOINT [ "/docker-entrypoint.sh"
- 23. Пример
- 24. Слой контейнера Containers - работоспособный экземпляр или инстанс образа из которого он был создан. Контейнер определяет
- 25. Определение запущенного контейнера Запущенный контейнер — это «общий вид» контейнера для чтения-записи его изолированного пространства процессов.
- 26. Команды контейнера docker create (docker container create) - добавляет слой для записи наверх стека слоев, найденного
- 27. Команды контейнера docker start (docker container start) - создает пространство процессов вокруг слоев контейнера. Может быть
- 28. Команды контейнера docker stop(kill) - Команда 'docker stop' посылает сигнал SIGTERM запущенному контейнеру, что мягко останавливает
- 29. Команды контейнера docker rm - Команда 'docker rm' удаляет слой для записи, который определяет контейнер на
- 30. Docker volumes В Docker есть несколько способов хранения данных. Наиболее распространенные: -тома хранения данных (docker volumes),
- 31. Том (docker volumes) Один том может быть примонтирован одновременно в несколько контейнеров. Когда никто не использует
- 32. Монтирование каталога с хоста (bind mount) Используется, когда нужно пробросить в контейнер конфигурационные файлы с хоста.
- 33. Команды - Volume Вывод списка всех томов на хосте: docker volume ls Создание тома: docker volume
- 34. Когда использовать тома, а когда монтирование с хоста
- 35. Docker network Подключает контейнер к сети. Подключить контейнер можно по имени или по ID. После подключения
- 36. Примеры команд docker volume create database_storage docker volume create mongodb_storage docker network create network_1 Создание томов
- 37. Docker run docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] [OPTIONS]: --rm - автоматически удалять контейнер при его
- 38. Пример Dockerfile Часть файла Dockerfile ……….. VOLUME /var/lib/mysql COPY docker-entrypoint.sh /usr/local/bin/ RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint
- 39. Инструкция Dockerfile Инструкция WORKDIR устанавливает рабочий каталог для любых RUN, CMD, ENTRYPOINT, COPY и ADD инструкции
- 40. Инструкция Dockerfile Инструкция RUN выполнит любые команды в новом слое поверх текущего образа и фиксирует результаты.
- 41. CMD и Entrypoint CMD Инструкция CMD позволяет вам установить команду по умолчанию, которая будет выполняться только
- 42. CMD и Entrypoint Dockerfile: FROM alpine ENTRYPOINT ["ping"] CMD ["www.google.com"] docker build -t ping-service . docker
- 43. CMD и Entrypoint CMD или ENTRYPOINT установлены в родительском образе, ни один из них не установлен
- 44. Команды Список запущенных контейнеров docker ps docker ps -a (все контейнеры в том числе и остановленные)
- 45. Команды Выполнить команду в контейнере: docker container exec -it container_alpine ping ya.ru Отобразить информацию, собранную запущенным
- 46. Команды Остановка контейнера docker stop container_alpine docker kill container_alpine Удаление контейнера docker rm container_alpine Остановить все
- 47. Docker Compose Инструмент для описание и запусков приложения которые состоят из нескольких приложений Docker Compose утилита
- 48. Docker Compose docker-compose build собрать проект docker-compose up -d запустить проект (запускать в режиме демона) docker-compose
- 49. Docker Compose RESTART: on-failure: on-failure[:max-retries] Перезапустите контейнер, если он завершает работу из-за ошибки, которая проявляется как
- 51. Скачать презентацию