Можете по-простому объяснить про Docker и как им начать пользоваться?

Здравствуйте! Можете по-простому объяснить мне как начать пользоваться Docker, как развернуть у себя "контейнер" и т.д. Заранее спасибо!
  • Вопрос задан
  • 2346 просмотров
Решения вопроса 1
saboteur_kiev
@saboteur_kiev
software engineer
Что такое докер - объяснить просто. Это виртуализация приложений. Для быстрого развертывания приложения в привычном для него окружении на любой подходящей системе.

Как начать им пользоваться - объяснить сложно, особенно не зная какую задачу вы хотите этим решить.
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
Sanes
@Sanes
Сначала решите для чего вам докер. Не стоит его пихать куда непопадя. Про докер полно информации, включая видео и даже на русском.
Ответ написан
lukoie
@lukoie
представьте себе что Вам нужен сайт на вордпресс
обычно Вы для этого поднимаете сервер(типа денвера), заводите локальный домен, заливаете туда вордпресс, устанавливаете его(прикрутив к БД), ну и тогда начинаете работать с Вордпрессом.

Докер это типа Вы запускаете один файлик, а там внутри виртуальная машина со всем уже настроенным запускается. То есть Вы только запустили контейнер, а там уже всё есть, Вы просто начинаете работать с Вордпрессом.

ЗЫЖ если кто-то захочет поправлять про один процесс на контейнер - не надо. Я просто упрощенно описал, но при этом вполне себе реальную ситуацию. Оркестрировать контейнеры с каждым сервером немного муторней чем стековый.
Ответ написан
Комментировать
@syuzyov
Если Вы пользуетесь виртуализацией, то знаете, что накладные расходы достаточно велики. Гостевая ОС кушает память, проц и диски нисколько не меньше, чем "обычная". Поскольку это обычная полноценная ОС, то и грузится она по времени, как любая обычная ОС. Короче долго. В итоге получается, что чем больше приложений мы рассаживаем по отдельным виртуалкам, тем больше накладных расходов получаем. Некоторым людям это настолько не нравилось, что они стали искать способы кардинально сэкономить память, проц и хранилище. Другим дико не нравилось, что приходится долго ждать запуска гостевой ОС, чтобы запустилось нужное приложение. Подозреваю, что эти множества сильно пересекались). В итоге было придумано, в общих чертах, следующее:
  • не эмулировать все железо полностью, а только самое нужное, типа сети и фс; при работе с фс разрешить прозрачно мапить каталоги хостовой ОС: память и проц резервировать и выделять по упрощенной программе, без полной изоляции, свойственной виртуалкам
  • использовать для работы гостевых ОС уже загруженное ядро хостовой ОС - экономим кучу времени на инициализации всего оборудования и загрузке (да, забыл сказать: недовольные до последнего времени были сплошь красноглазики разной степени тяжести)
  • ну и все в таком духе

В итоге появилось то, что нонче называется контейнерной виртуализацией, представителями которой являются lxc, lxd, docker, rancher другие. Как это принято в open-source, все эти продукты в той или иной степени используют друг друга (идеи и принципы, кодовая база...), дополняют, являются форком или надстройкой/оберткой над родственным продуктом. Так, изначально докер являлся в какой-то степени надстройкой над lxc (да простят меня коллеги за вопиющие кощунства и неточности - все во имя упрощения и понятности).
Итак, Docker - это виртуализация, но не полноценная, а "упрощенная", хотя наверное точнее будет сказать "облегченная и ускоренная", ибо простотой там, кроме как на совсем банальных хелловорлдах, не пахнет, особенно при отладке (отладка и докер порой создают особо изощренные анально-интеллектуальные приключения). Важный момент - это все таки виртуализация ОС со своим шеллом и окружением, но виртуализация эта заточена на выполнение одного-двух приложений с минимальными накладными расходами и сверхбыстрым (по сравнению с классической виртуалкой) запуском. Использование одного ядра для всех "контейнерных виртуалок" объясняет, почему на linux не получиться выполнять контейнеры с windows, unix и mac, и наоборот. Хотя с появлением WSL в windows есть шансы на практически нативные контейнеры с linux, работающие под windows...
Теперь по быстрому старту: https://docs.docker.com/docker-for-windows/#explor...
Ответ написан
Комментировать
@klepiku
докер примерно тоже что portable версия программы на windows только для всех систем
Ответ написан
Комментировать
amexlar
@amexlar
Кирилл, если вы разрабатываете в команде, то докер значительно снижает риски типа
* у разных разработчиков может быть разная версия PHP
* разная версия MySQL
* по-разному настроено системное окружение, которое может вносить "помехи"
* разное железо

Запуская в докере, вы получаете единую и унифицированно настроенную систему. К тому же, контейнеры, как правило, готовятся более опытными товарищами (а скорее, целыми сообществами опытных товарищей), что избавляет вас от "тюнингования" инструментов разработки. Если докер юзается и на продакшне, то это снимает львиную долю проблем по деплою.

Да, въезжание в докер требует определенных усилий, но в перспективе оно окупается. Мир IT так или иначе движется в сторону виртуализации, а запрыгивать на этот поезд или нет - решать вам)
Ответ написан
Комментировать
@metajiji
Не супер конечно руководство, но для начала сойдёт: https://habr.com/post/310460/

Важно усвоить в чем разница image и container, потом осознать почему это одно и тоже:)
А дальше будет легче.
Ответ написан
Комментировать
@v_m_smith
лучше бы я пил и курил
Т.к. Docker for windows - это громоздко, то есть смысл начать играться с докером в виртуалке.
По-простому
  1. Устанавливаем VirtualBox
  2. Скачиваем Docker-machine отсюда https://github.com/docker/machine/releases/
  3. Выполняем из cmd
    docker-machine create -d virtualbox --virtualbox-boot2docker-url https://releases.rancher.com/os/latest/rancheros.iso --virtualbox-memory "2048" VM4DOCKERNAME

  4. Проверяем, что виртуалка создалась docker-machine ls
  5. Теперь заходим в нашу маленькую докернутую виртуалку docker-machine ssh VM4DOCKERNAME
    Мы в виртуалке и в ней уже есть Docker!
    1. Проверим образы - пусто
      docker images
    2. Проверим докер контейнеры - пусто
      docker ps -a
    3. Попробуем скачать и установить контейнер, например, с последним MS SQL Server for Linux
      sudo docker pull microsoft/mssql-server-linux:2017-latest

      Хоп! У нас теперь есть MS SQL! На Linux :)
    4. Проверяем что контейнер запустился
      docker ps
    5. Все, MS SQL готов к работе на порту по умолчанию. Создаем юзера и можем например, прогнать тесты по развертыванию базы

  6. Когда наигрались, берем и удаляем виртуалку с докером
    docker-machine rm VM4DOCKERNAME
    Чтобы и следа от нее не осталось.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы