
Инфраструктура
и Docker
План лекции
- Темные времена
- Облачные провайдеры
- Виртуальные машины
- Docker
- Разбор задания

Темные
времена

~ 1996 год
Написали приложение. Что дальше?
- Купить сервер
- Установить сервер
- Купить ОС
- Настроить ОС
- Поставить зависимости
- Запустить приложение
- ...
- Следить за сервером




Минусы?
- Стоимость
- Нерациональное использование ресурсов
- Обслуживание железа
- Обслуживание ОС
- Масштабирование
- Время развертывания

Что делать?

Облачные провайдеры

~ 2006 год


Минусы?
- Стоимость
- Нерациональное использование ресурсов
Обслуживание железа- Обслуживание ОС
- Масштабирование
Время развертывания

Виртуальные машины




Плюсы?

- Меньше серверов
- Изоляция
- Независимость
- Разные ОС
- Готовые образы
Минусы?

СтоимостьНерациональное использование ресурсовОбслуживание железа- Обслуживание ОС
Масштабирование- Время развертывания
Docker

Отличия от ВМ
- Виртуализация на уровне ОС
- Меньший вес образа
- Быстрый старт
- Меньшее потребление ресурсов
- Худшая безопасность


Терминология
- Image
- Container
- Docker Daemon
- Docker Client
- Docker Hub

Команды
- docker ps [-a включая остановленные]
- docker pull <image:tag>
- docker run <image>
- docker start <name|id>
- docker stop <name|id>
- docker rm <name|id>
Dockerfile
FROM node:12
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "node", "server.js" ]docker-compose.yml
version: '3'
services:
nodejs:
build: .
ports:
- "80:8080"
networks:
- app-network
command: node app.js
db:
image: mongo:4.2
container_name: mongo
volumes:
- dbdata:/data/db
networks:
- app-network
networks:
app-network:
volumes:
dbdata:Еще?
15 - Docker
By Startup Summer
15 - Docker
- 125