SlideShare a Scribd company logo
1 of 27
Download to read offline
Технологии разработки программного обеспечения
(практика)
Мартынов Семён, Хозяинов Иван
Санкт-Петербургского политехнического университета Петра Великого
Института компьютерных наук и технологий
Кафедра компьютерных систем и программных технологий
12 октября 2017 г.
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 1 / 27
Содержание
1 Введение
2 Docker
История
Принцип работы
Установка
Dockerfile
Полезные примеры
3 Прочее
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 2 / 27
Контакты
Мартынов Семён
semen.martynov@gmail.com
C++/Java/Python
https://ru.linkedin.com/
in/semenmartynov
Хозяинов Иван
ikhoziainov@icloud.com
C#/Python
+7 999 208 65 32
("Соц сети прошлый век")
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 3 / 27
Практическая направленность
"Кому из айтишников на Руси жить хорошо (а кому будет еще лучше)"
(3 октября 2017, https://habrahabr.ru/company/agima/blog/339216/)
120 просмотров
15 приглашений на интервью
6 офферов со средней ЗП 80 т.р. (Москва)
Устроиться на работу легко, а дальше нужно показать себя =)
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 4 / 27
План
Предварительный список тем для практики:
1 Docker
2 Системы контроля версий (git, git-flow)
3 Системы сборки проектов (Gradle, Maven)
4 Системы управления задачами (Redmine, Jira)
5 Системы для непрерывной интеграции (Jenkins, Bamboo, Travian)
6 Управление артефактами/управление документацией
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 5 / 27
Формат работы
1 Интерактив, обсуждения на семинарах
2 Тесты для самостоятельного определения уровня понимания
3 Не большие практические задачи дома
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 6 / 27
Что такое Docker?
Docker – система контейнерной виртуализации
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 7 / 27
Что такое Moby?
Docker – эталонная реализация системы контейнерной виртуализации
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 8 / 27
Грузоперевозки ДО контейнеризации
Необходимо продумать тару под каждый груз и порядок размещения
(задача о рюкзаке?)
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 9 / 27
Грузоперевозки ПОСЛЕ контейнеризации
...PROFIT!
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 10 / 27
Компании, которые используют Docker
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 11 / 27
Применение Docker в компаниях
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 12 / 27
Виртуальные машины простив контейнеров
Контейнеры разделяют ядро операционной системы и, когда нужно,
некоторые слои с файлами (библиотеками).
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 13 / 27
Работа контейнеров в Linux (LXC)
Namespaces – изоляция.
Cgroups – лимит ресурсов.
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 14 / 27
От контейнеров к Docker
Namespaces + Cgroups + Docker Images = Docker Containers
docker run == lxc-start
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 15 / 27
Файловая система (Docker Images)
Слои не изменяемы, но могут накладываться друг на друга.
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 16 / 27
Особенности работы с Docker
Каждый сервис работает на своём "сервере"
Простота обновления
Лёгкая миграция сервисов
Оптимальная нагрузка на железо
Единое окружение (Prod/QA/Dev)
Изолированные сети
Автоматизация сборки
Растущее сообщество
Но...
Проблема роста и ограниченная обратная совместимость
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 17 / 27
Установка Docker
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 18 / 27
Установка Docker на CentOS
Всё ОЧЕНЬ просто:
sudo yum install -y yum-utils
sudo yum-config-manager –add-repo
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce
sudo systemctl start docker
sudo docker run hello-world
Подробнее:
https://docs.docker.com/engine/installation/linux/docker-ce/centos/
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 19 / 27
Dockerfile
Example (Dockerfile)
FROM ubuntu
RUN apt-get update
RUN apt-get install -y git-core
RUN git clone https://github.com/user/superapp.git
CMD python superapp/app.py
docker build -t myapp .
docker run –rm -it –name myapptest myapp
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 20 / 27
Dockerfile
Example (Dockerfile)
FROM ubuntu:14.04
MAINTAINER Semen Martynov <semen.martynov@gmail.com>
RUN apt-get update
RUN apt-get install -y nginx
RUN echo ’Hi, I am in your container’ 
>/usr/share/nginx/html/index.html
EXPOSE 80
docker build -t webserver .
docker run –rm -it –name webtest -p 80:80 webserver
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 21 / 27
Ubuntu (Аналог Vagrant)
docker run --rm -it --name ubuntutest -v ‘pwd‘:/opt ubuntu
/bin/bash
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 22 / 27
MySQL + PhpMyAdmin
docker run 
--detach 
--name mariadb 
--restart always 
--volume "/etc/localtime:/etc/localtime:ro" 
--volume "/home/user/db:/var/lib/mysql" 
-e MYSQL_ROOT_PASSWORD=W3VZNWvttMHSgtZ55po3h7 
mariadb
docker run --rm -ti --name myadmin 
--link mariadb:db -p 8080:80 phpmyadmin/phpmyadmin
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 23 / 27
wiki
docker run --name some-mediawiki -p 8081:80 -d mediawiki
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 24 / 27
ctop
docker run --rm -ti 
--name=ctop 
--volume /var/run/docker.sock:/var/run/docker.sock 
--volume "/etc/localtime:/etc/localtime:ro" 
quay.io/vektorlab/ctop:latest
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 25 / 27
Тест
ФИО, Группа?
Уровень владения Linux?
Уровень владения Java?
Какие ещё языки программирование можете читать?
Напишите "Hello world"на любимом ЯП
Какие темы бы ещё хотелось рассмотреть?
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 26 / 27
ДЗ: Запустить WordPress в Docker.
Вопросы?
Замечания?
Дополнения?
Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 27 / 27

More Related Content

What's hot

SECON'2016. Кириллов Александр, Continuous Integration под микроскопом
SECON'2016. Кириллов Александр, Continuous Integration под микроскопомSECON'2016. Кириллов Александр, Continuous Integration под микроскопом
SECON'2016. Кириллов Александр, Continuous Integration под микроскопомSECON
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Ruslan Sharipov
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеAndrey Kazarinov
 
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerAndrey Markelov
 
Введение в Docker
Введение в Docker Введение в Docker
Введение в Docker Andrey Markelov
 
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVMОмские ИТ-субботники
 
Использование Vagrant и docker при разработке в 1с
Использование Vagrant и docker при разработке в 1сИспользование Vagrant и docker при разработке в 1с
Использование Vagrant и docker при разработке в 1сЕвгений Сосна
 
Проникновение в Docker с примерами
Проникновение в Docker с примерамиПроникновение в Docker с примерами
Проникновение в Docker с примерамиДмитрий Столяров
 
Мониторь, автоматизируй Docker
Мониторь, автоматизируй DockerМониторь, автоматизируй Docker
Мониторь, автоматизируй DockerBadoo Development
 
Cocaine cloud administration at YaC
Cocaine cloud administration at YaCCocaine cloud administration at YaC
Cocaine cloud administration at YaCDenis Zaitsev
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Badoo Development
 

What's hot (14)

SECON'2016. Кириллов Александр, Continuous Integration под микроскопом
SECON'2016. Кириллов Александр, Continuous Integration под микроскопомSECON'2016. Кириллов Александр, Continuous Integration под микроскопом
SECON'2016. Кириллов Александр, Continuous Integration под микроскопом
 
Docker. Основы
Docker. ОсновыDocker. Основы
Docker. Основы
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
 
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и Docker
 
Введение в Docker
Введение в Docker Введение в Docker
Введение в Docker
 
Что такое Docker
Что такое DockerЧто такое Docker
Что такое Docker
 
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
 
Docker for JS people
Docker for JS peopleDocker for JS people
Docker for JS people
 
Использование Vagrant и docker при разработке в 1с
Использование Vagrant и docker при разработке в 1сИспользование Vagrant и docker при разработке в 1с
Использование Vagrant и docker при разработке в 1с
 
Проникновение в Docker с примерами
Проникновение в Docker с примерамиПроникновение в Docker с примерами
Проникновение в Docker с примерами
 
Мониторь, автоматизируй Docker
Мониторь, автоматизируй DockerМониторь, автоматизируй Docker
Мониторь, автоматизируй Docker
 
Cocaine cloud administration at YaC
Cocaine cloud administration at YaCCocaine cloud administration at YaC
Cocaine cloud administration at YaC
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
 

Similar to Software engineering seminars: Docker

Software engineering seminars: jenkins
Software engineering seminars: jenkinsSoftware engineering seminars: jenkins
Software engineering seminars: jenkinsSemen Martynov
 
Software engineering seminars: jira
 Software engineering seminars: jira Software engineering seminars: jira
Software engineering seminars: jiraSemen Martynov
 
Software engineering seminars: git
 Software engineering seminars: git Software engineering seminars: git
Software engineering seminars: gitSemen Martynov
 
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...Provectus
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Yandex
 
Technopolis.NoSQL 01
Technopolis.NoSQL 01Technopolis.NoSQL 01
Technopolis.NoSQL 01Vadim Tsesko
 
Введение. Key-value.
Введение. Key-value.Введение. Key-value.
Введение. Key-value.Vadim Tsesko
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)Ontico
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019Alex Chistyakov
 
Комплексное Предложение Linux Wizard для школ Санкт-Петербурга и Ленинградско...
Комплексное Предложение Linux Wizard для школ Санкт-Петербурга и Ленинградско...Комплексное Предложение Linux Wizard для школ Санкт-Петербурга и Ленинградско...
Комплексное Предложение Linux Wizard для школ Санкт-Петербурга и Ленинградско...Penguin Tux
 
Building Systems Analysts Office
Building Systems Analysts OfficeBuilding Systems Analysts Office
Building Systems Analysts OfficeDenis Beskov
 

Similar to Software engineering seminars: Docker (13)

Software engineering seminars: jenkins
Software engineering seminars: jenkinsSoftware engineering seminars: jenkins
Software engineering seminars: jenkins
 
Software engineering seminars: jira
 Software engineering seminars: jira Software engineering seminars: jira
Software engineering seminars: jira
 
Software engineering seminars: git
 Software engineering seminars: git Software engineering seminars: git
Software engineering seminars: git
 
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...
[Data Science MeetUp] Neural Network - Константин Созыкин (RoadAR): Современн...
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
 
Technopolis.NoSQL 01
Technopolis.NoSQL 01Technopolis.NoSQL 01
Technopolis.NoSQL 01
 
Meteor
MeteorMeteor
Meteor
 
Введение. Key-value.
Введение. Key-value.Введение. Key-value.
Введение. Key-value.
 
DC/OS more than PAAS
DC/OS more than PAASDC/OS more than PAAS
DC/OS more than PAAS
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019
 
Комплексное Предложение Linux Wizard для школ Санкт-Петербурга и Ленинградско...
Комплексное Предложение Linux Wizard для школ Санкт-Петербурга и Ленинградско...Комплексное Предложение Linux Wizard для школ Санкт-Петербурга и Ленинградско...
Комплексное Предложение Linux Wizard для школ Санкт-Петербурга и Ленинградско...
 
Building Systems Analysts Office
Building Systems Analysts OfficeBuilding Systems Analysts Office
Building Systems Analysts Office
 

More from Semen Martynov

Исследование характеристик динамического предсказания ветвлений в конвейере с...
Исследование характеристик динамического предсказания ветвлений в конвейере с...Исследование характеристик динамического предсказания ветвлений в конвейере с...
Исследование характеристик динамического предсказания ветвлений в конвейере с...Semen Martynov
 
Кэш-независимые алгоритмы: анализ алгоритма перемножения квадратных матриц
Кэш-независимые алгоритмы: анализ алгоритма перемножения квадратных матрицКэш-независимые алгоритмы: анализ алгоритма перемножения квадратных матриц
Кэш-независимые алгоритмы: анализ алгоритма перемножения квадратных матрицSemen Martynov
 
Корпоративная культура организации: примеры и формирование
Корпоративная культура организации: примеры и формированиеКорпоративная культура организации: примеры и формирование
Корпоративная культура организации: примеры и формированиеSemen Martynov
 
Исследование работы Кэш-памяти центрального процессора
Исследование работы Кэш-памяти центрального процессораИсследование работы Кэш-памяти центрального процессора
Исследование работы Кэш-памяти центрального процессораSemen Martynov
 
Введение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel PinВведение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel PinSemen Martynov
 
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...Semen Martynov
 

More from Semen Martynov (7)

Исследование характеристик динамического предсказания ветвлений в конвейере с...
Исследование характеристик динамического предсказания ветвлений в конвейере с...Исследование характеристик динамического предсказания ветвлений в конвейере с...
Исследование характеристик динамического предсказания ветвлений в конвейере с...
 
Кэш-независимые алгоритмы: анализ алгоритма перемножения квадратных матриц
Кэш-независимые алгоритмы: анализ алгоритма перемножения квадратных матрицКэш-независимые алгоритмы: анализ алгоритма перемножения квадратных матриц
Кэш-независимые алгоритмы: анализ алгоритма перемножения квадратных матриц
 
Корпоративная культура организации: примеры и формирование
Корпоративная культура организации: примеры и формированиеКорпоративная культура организации: примеры и формирование
Корпоративная культура организации: примеры и формирование
 
Исследование работы Кэш-памяти центрального процессора
Исследование работы Кэш-памяти центрального процессораИсследование работы Кэш-памяти центрального процессора
Исследование работы Кэш-памяти центрального процессора
 
Введение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel PinВведение в динамический анализ приложений на примере Intel Pin
Введение в динамический анализ приложений на примере Intel Pin
 
Dauria aerospace
Dauria aerospaceDauria aerospace
Dauria aerospace
 
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...
Задача выделения объекта на изображении: хаотично-фазовая синхронизация и аси...
 

Software engineering seminars: Docker

  • 1. Технологии разработки программного обеспечения (практика) Мартынов Семён, Хозяинов Иван Санкт-Петербургского политехнического университета Петра Великого Института компьютерных наук и технологий Кафедра компьютерных систем и программных технологий 12 октября 2017 г. Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 1 / 27
  • 2. Содержание 1 Введение 2 Docker История Принцип работы Установка Dockerfile Полезные примеры 3 Прочее Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 2 / 27
  • 3. Контакты Мартынов Семён semen.martynov@gmail.com C++/Java/Python https://ru.linkedin.com/ in/semenmartynov Хозяинов Иван ikhoziainov@icloud.com C#/Python +7 999 208 65 32 ("Соц сети прошлый век") Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 3 / 27
  • 4. Практическая направленность "Кому из айтишников на Руси жить хорошо (а кому будет еще лучше)" (3 октября 2017, https://habrahabr.ru/company/agima/blog/339216/) 120 просмотров 15 приглашений на интервью 6 офферов со средней ЗП 80 т.р. (Москва) Устроиться на работу легко, а дальше нужно показать себя =) Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 4 / 27
  • 5. План Предварительный список тем для практики: 1 Docker 2 Системы контроля версий (git, git-flow) 3 Системы сборки проектов (Gradle, Maven) 4 Системы управления задачами (Redmine, Jira) 5 Системы для непрерывной интеграции (Jenkins, Bamboo, Travian) 6 Управление артефактами/управление документацией Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 5 / 27
  • 6. Формат работы 1 Интерактив, обсуждения на семинарах 2 Тесты для самостоятельного определения уровня понимания 3 Не большие практические задачи дома Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 6 / 27
  • 7. Что такое Docker? Docker – система контейнерной виртуализации Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 7 / 27
  • 8. Что такое Moby? Docker – эталонная реализация системы контейнерной виртуализации Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 8 / 27
  • 9. Грузоперевозки ДО контейнеризации Необходимо продумать тару под каждый груз и порядок размещения (задача о рюкзаке?) Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 9 / 27
  • 10. Грузоперевозки ПОСЛЕ контейнеризации ...PROFIT! Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 10 / 27
  • 11. Компании, которые используют Docker Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 11 / 27
  • 12. Применение Docker в компаниях Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 12 / 27
  • 13. Виртуальные машины простив контейнеров Контейнеры разделяют ядро операционной системы и, когда нужно, некоторые слои с файлами (библиотеками). Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 13 / 27
  • 14. Работа контейнеров в Linux (LXC) Namespaces – изоляция. Cgroups – лимит ресурсов. Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 14 / 27
  • 15. От контейнеров к Docker Namespaces + Cgroups + Docker Images = Docker Containers docker run == lxc-start Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 15 / 27
  • 16. Файловая система (Docker Images) Слои не изменяемы, но могут накладываться друг на друга. Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 16 / 27
  • 17. Особенности работы с Docker Каждый сервис работает на своём "сервере" Простота обновления Лёгкая миграция сервисов Оптимальная нагрузка на железо Единое окружение (Prod/QA/Dev) Изолированные сети Автоматизация сборки Растущее сообщество Но... Проблема роста и ограниченная обратная совместимость Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 17 / 27
  • 18. Установка Docker Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 18 / 27
  • 19. Установка Docker на CentOS Всё ОЧЕНЬ просто: sudo yum install -y yum-utils sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce sudo systemctl start docker sudo docker run hello-world Подробнее: https://docs.docker.com/engine/installation/linux/docker-ce/centos/ Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 19 / 27
  • 20. Dockerfile Example (Dockerfile) FROM ubuntu RUN apt-get update RUN apt-get install -y git-core RUN git clone https://github.com/user/superapp.git CMD python superapp/app.py docker build -t myapp . docker run –rm -it –name myapptest myapp Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 20 / 27
  • 21. Dockerfile Example (Dockerfile) FROM ubuntu:14.04 MAINTAINER Semen Martynov <semen.martynov@gmail.com> RUN apt-get update RUN apt-get install -y nginx RUN echo ’Hi, I am in your container’ >/usr/share/nginx/html/index.html EXPOSE 80 docker build -t webserver . docker run –rm -it –name webtest -p 80:80 webserver Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 21 / 27
  • 22. Ubuntu (Аналог Vagrant) docker run --rm -it --name ubuntutest -v ‘pwd‘:/opt ubuntu /bin/bash Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 22 / 27
  • 23. MySQL + PhpMyAdmin docker run --detach --name mariadb --restart always --volume "/etc/localtime:/etc/localtime:ro" --volume "/home/user/db:/var/lib/mysql" -e MYSQL_ROOT_PASSWORD=W3VZNWvttMHSgtZ55po3h7 mariadb docker run --rm -ti --name myadmin --link mariadb:db -p 8080:80 phpmyadmin/phpmyadmin Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 23 / 27
  • 24. wiki docker run --name some-mediawiki -p 8081:80 -d mediawiki Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 24 / 27
  • 25. ctop docker run --rm -ti --name=ctop --volume /var/run/docker.sock:/var/run/docker.sock --volume "/etc/localtime:/etc/localtime:ro" quay.io/vektorlab/ctop:latest Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 25 / 27
  • 26. Тест ФИО, Группа? Уровень владения Linux? Уровень владения Java? Какие ещё языки программирование можете читать? Напишите "Hello world"на любимом ЯП Какие темы бы ещё хотелось рассмотреть? Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 26 / 27
  • 27. ДЗ: Запустить WordPress в Docker. Вопросы? Замечания? Дополнения? Мартынов Семён, Хозяинов Иван ТРПО (практика) 12 октября 2017 г. 27 / 27