Просто о контенеризации. Docker
Вставка
- Опубліковано 29 лис 2024
- Docker: основы работы с образами и контейнерами. Как получить, запустить и практически использовать виртуализацию Docker.
Linux post install steps 3:17
pull 4:34
Структура образа (слои) 5:12
run -it 7:26
run command 8:58
ps 10:14
rm 11:06
images 12:09
rmi 12:14
Alpine Linux 13:34
start 15:01
stop 15:22
run -d 16:16
--name 16:36
Docker Hub 16:59
pull :version 17:35
ctop 18:11
exec 18:35
attach 20:37
Ctrl + P Ctrl + Q 20:50
Port forwarding (-p) 21:40
Volume forwarding (-v) 23:45
Мерч letscode.vsema...
Поддержать проект:
➡ Стать спонсором www.youtube.co...
➡ Patreon / letscodedru
➡ Яндекс.Деньги money.yandex.r...
➡ PayPal paypal.me/lets...
➡ Qiwi qiwi.me/letscode
В этом видосе мы смотрим как базово использовать Docker разработчику и администратору. Делаем первые шаги в Docker и пытаемся понять, зачем он вообще нам может быть нужен.
Sweater deploy:
Linux: • Spring Boot: публикуем...
Windows: • Spring Boot: публикуем...
Sarafan deploy:
• Публикация на Heroku. ...
Install Docker:
Linux: docs.docker.co...
MacOS: docs.docker.co...
Windows: docs.docker.co...
Post install Linux:
docs.docker.co...
Explore DockerHub:
hub.docker.com...
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
➡ Твиттер: / letscodedru
➡ Группа Вконтакте: letscod...
➡ Канал в Telegram: t.me/letsCode_dru
➡ Чат в Telegram: t.me/joinchat/...
➡ Сервер в Discord: / discord
➡ Ссылка на Яндекс.Дзен: zen.yandex.ru/...
Не понял, что с security в этом Docker?
Под каким пользователем, например, запускается bash в образе Ubuntu, с какими правами?
Всегда root. Забыл об этом упомянуть. Там проблема безопасности стоит в другом ключе. Снаружи доступа к внутреннему устройству контейнера нет, как и у контейнера нет доступа к хосту. За счёт этого безопасность не страдает. Любой урон останется в контейнере
@@letsCodeDru
Некоторый софт в Линуксе не даёт root`у право доступа, как ни странно (сейчас навскидку не вспомню точно какой), как быть?..
@@victormog не. Тут контейнеры построены так, что все, что должно работать - работает. Вообще не парься :) если найдёшь конкретный пример - кидай, рассмотрим
@@letsCodeDru
Ну, идеально было бы конкретный пример *тебе* показать! ;-)
Но я так понял, что ещё будет такое видео, так?..
У меня нет примера, когда что-то не запускается под root.
Я покажу дальше конкретные примеры, как использую докер в своей работе
Я просто охереваю: каналы с околоайтишными звездоболами собирают по 30, 60, 100к подписчиков. Здесь же мужик наводит реальную движуху, делает действительно полезный, качественный контент - даже десятки нет.
Так из всех выпускников IT-курсов остаются в деле всего порядка 10%.
@@cover-band6035 откуда такие цифры?
Околоайтишные звездоболы для таких же контент и дают, а для околоайтишных звездоболов IT темы бесполезны и рвут их моск.
не все любят "сложна"
он зачем дает очень быстро и без объяснения деталей. Как программист он крут, как педагог - около нуля.
Гениально!!!!!!!! Наконец-то вкурил Docker!!!!!! За 2 вечера видео проработал и теперь могу начить других! Спасибо!
классно супер !!!!! прям балдею от падачи информации ! все кратко сжато , нет "воды" !!!!
Годные видео!
Без воды, без запинок, без остановок на совсем уж очевидных вещах. Только полезное и нужное.
Если у вас так же как у меня команда "docker run -d --name pg postgres" не стартовала контейнер в фоне, смотрите логи этого контейнера. Конкретно у меня ругалось что нужно указать superuser password для базы и тд. Но если что автору большое спасибо! После того как прошелся по различным туториалам ничего не понял и только тут все как в 1 классе очень просто про сложные вещи, браво!
Мастер в деле!! Спасибо!!
Отлично рассказываешь, сразу уловил суть! Никак руки не доходили до изучения темы контейнеризации, всё обходился виртуальными окружениями, но благодаря твоему дару объяснять свет начинает проливаться!
лучшей подачи материала я ещё не встречал,
огромная благодарность!
Это одни из самых полезных 25:33 минут моей жизни) Спасибо большое :)
Единственное видео, в котором понятно объясняется докер. Большое спасибо!
Ништяк! Мужик!! Базовые вкусности лучше чем где-либо показаны, дальше можно особо не вникать сразу, и делать красиво уже из этого.
Работать можно с этим. Мне для локалхоста пригодится капец как, долго обходил тему не видел толковой инфы, а тут бац! И все понятно, и многие темы наперед открыты, а главное можно работать без выкручивания гениталий.
Спасибо вам огромное.
Чем больше узнаю докер, тем больше понимаю, чего я до сих пор терял.
Отличное видео, понятно, доходчиво, лаконично. Я долго искал внятное объяснение Docker, очень благодарен автору!!!
Браво!!! Все четко, лаконично, полезно.... Как же иногда не хватает таких вот объяснений со стороны более опытных товарищей в жизни на конкретно заданные вопросы...
Имхо это лучший урок по началу изучения докера на русскоязычном ютубе
Целый день смотрел твои видосы. Теперь каждому видео лайк автоматом от меня
*Очень просто и понятно объяснил, мне сразу всё стало понятно. Большое спасибо тебе за труды, реально помог сэкономить кучу нервов и времени!*
Очень доступно и исчерпывающе. Спасибо автору
В понедельник диплом по этой теме защищаю, спасибо большое !
Ну че, сдал? Какая оценка? Докер то юзаешь, или как сдал диплом - не запускал ни разу?)
Docker мастера боится
Спасибо что радуете своими качественными видео. Супер!
Спасибо !
очень хороший формат видео !
Дай Бог здоровья автору. Среди кучи нудного и усложненного материала должен был наконец появиться настоящий бриллиант, который просто расскажет об очень важных вещах.
Видос пушка, смотриться интересно и легко, спасобо огромное!!!
Ты лучший на ютубе по программированию вообще, продолжай, ждем новых видосов по актуальным инструментам
Отличное видео, без воды, коротко и по делу. 5+
Отлично видео. Самое понятное обьяснение основ докера имхо. Спасибо!
Отличный урок ) Все понятно и информативно.
Спасибо
видео очень полезное, все доступно и понять, спасибо
Аааааагонь!
Все по делу, быстро и понятно!
Огромное спасибо!
Хороший понятный видос. качественный.
Один из лучших уроков по теме!
Крайне доступно и информативно. Спасибо!
Спасибо за полезный туториал по docker
Спасибо огромное за видео! в куче ютуб мусора тяжело было отыскать это видео с грамотными примерами и объяснением предназначения докера.
какой же ты замечательный человек.
Очень классно объяснил, просто и понятно, спасибо за материал!
Отличная работа, спасибо за ваш труд :)
Если кому интересно, mysql образ можно создать (+ запустить) так:
docker run -p 3307:3306 --name dev-mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql
Просто у меня почему-то глючила команда, когда я например пытался порты поставить в конец этой команды с ключом -p. Или MYSQL_ROOT_PASSWORD если в конец ставишь, то он его тоже не чувствует.
Ну и подключение
sudo mysql -u root -h 0.0.0.0 -P 3307 -p
P.S. ставил на другой порт, так как лень было гуглить, как его освободить.
UPD: service mysql stop и можно пробрасывать порт 3306
Отличная подача! Довольно коротко и понятно. Продолжай так же вырезать лишние движения (не влияющие на суть) это здорово экономит зрителям время.
Omg я дождался докер на этом канале!
Сверх информативно! Спасибо!
Спасибо! Как всегда шикарный урок!!!
Как всегда кратко и очень информативно. Часто переслушиваю твои стримы на фоне, очень приятный голос )
Супер! Спасибо. Хорошо рассказал
Автор, спасибо большое за ролик!!! Все понятно, всё по полочкам разложил!!!
Редко пишу комментарии но у тебя талант понятным языком объяснять, столько красивых превьюшек везде и смонтированно местами лучше, но объясняют ужасно, спасибо!
Потрясающе! Очень понятно
Как всегда все на высоте! Аннотация по тайм-кодам топ!
Очень круто и доходчиво все объясняешь лайк !
Чётенько! Спасибо!
Посмотрел три четыре видоса про Docker из серии нихуя не понял но очень интересно. Этот видос за первые 10 минут открыл для меня все что нужно.
большое спасибо за проделанную работу!!!
Ух ты! Это же прям то, что нужно!
Команда docker run -d --name pg postgres скачивает образ, но контейнер не запускает.
Полазив по интернету наткнулся на ответ:
"Однако есть проблема с -d. Ваш контейнер немедленно останавливается, если команды не выполняются на переднем плане.
Docker требует, чтобы ваша команда продолжала работать на переднем плане. В противном случае он считает, что ваши приложения останавливаются и завершают работу контейнера."
Решение проблемы - добавление в конец команды tail -f/dev/null
Спасибо, братишка выручил, а то я уже расстроился
только если зайти в контейнер docker exec -it pgi bash и ввести top то там postgres не будет запущен(
@@АлександрРезов-ь3ф В документации написано hub.docker.com/_/postgres , что запускать нужно docker run --name pg -e POSTGRES_PASSWORD=password -d postgres
Только вот не указано, что это обязательные параметры, без которых работать не будет. :)
Очень хорошо разъяснил. Однозначно лайк!!
Благодарю. Ещё быть так научиться думать в пределах нескольких контейнеров одновременно и понимать что, где и как)
Мощно! спасибо!
Жаль, что нельзя поставить второй лайк - первый я поставил при первом просмотре, а вот сейчас смотрю уже по работе... Спасибо за видео!!!
Это очень круто!
ДА!!! Прямо вот очень актуально :)
спасибо, полезное видео
очень дохочиво и по делу
Это мне все не нужно. Но смотрел с интересом. Очень дельно.
Привет! Очень понравился урок! Он точно лучший из всего, что есть на UA-cam.
У меня есть вопрос о хранении данных в БД. Предположим я развернула контейнер с pg и поработала с БД. После его остановки, данные сохраняться в контейнере? Что будет с данными, если мне нужно развернуть несколько идентичных версий БД, но там должны храниться разные данные?
Спасибоо за офигенный урок!!!
Спасибо, Андрей. Как всегда полезно))
Увидел как этот господин виртуозно бахнул контейнер, пока другие два курили в сторонке, и сразу подписался
Здорово! единственное под убунтой не удалось к постгресу подключиться, как на 23:03. контейнер запущен а команда
~$ sudo -u postgres psql -h localhost
выдает
sudo: неизвестный пользователь: postgres
если меняю имя пользователя на моего текущего - не понимает остальные команды. или у меня на локальной должен быть установлен и запущен postgres чтобы это срабатывало?
PS: с работой в терминале знаком слабо, возможно отсюда непонимание, но поиск по ключам вообще ничего не дал.
Да, это я лопух. Клиента постгрес надо отдельно устанавливать локально
@@letsCodeDru а если не устанавливать локально, можно ли обратиться через пользователя в контейнере?
Добрый день, автор и коллеги! Все понятно, все супер, очень доходчиво... кроме последнего пункта - там, где подключаемся к postgres базам данных.
Я ввожу команды, как в ролике:
docker run -d --name pgi -p 5432:5432 postgres
все нормально, контейнер стартует.
Далее, следуя инструкциям в ролике ввожу:
sudo -u postgres psql -h localhost
и убунта мне выдает:
sudo: unknown user: postgres
sudo: unable to initialize policy plugin
что я делаю не так?
Заранее спасибо?
у вас не установлен postgres на убунте
Почему когда я запускаю команду например docker start pg оно у меня сразу выходит, а когда docker stop pg оно ждет несколько секунд и только потом выходит. Если кратко, то оно работает наоботрот!! Почему так происходит?
только на этой неделе рассказывали на работе лекцию про Докер. Не сказать, что я не понял основные принципы, но хотелось бы реально увидеть, как все это работает. А то пока мои знания на уровне "не учил, но читал". Спасибо за урок)
Да докер достаточно прост по сути своей. Ну а "глубокое" понимание его - это понимание работы cgroups в линукс
Очень круто спасибо
реальная годнота!
Появилось в рекомендациях ютуба, думал про дома из контейнеров что-то будет, нихуя не понял, но очень интересно.
У кого будет проблема подключения к postgres на 23:09 - Необходимо дополнительно установить пакет postgresql-client, сама команда будет выглядеть следующим образом - "sudo psql -U postgres -h localhost"
ахренеть, прям настолько просто, что даже думать не надо....
После выполнения комманды "docker run -d --name pg postgres" этот котейнер имеет статус "Exited (1)". Не понимаю почему.
Документация к postgres на сайте докера - "$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres".
Спасибо за труд, рекомендую!
Спасибо, очень познавательно.
Здравствуйте. Подскажите пожалуйста, на 3:27 откуда появляется вот этот черный экран? Что открывать? Куда вы пишете команды?
Норм видос!!! Это ещё актуально, или уже всё по другому?
Андрей, как всегда четко и по делу.
А что еще планируешь по Docker-у? Хотелось бы увидеть формирование контейнера. Например засунуть в один контейнер *nix + DB + запущенный "свитер", который можно перетащить можно куда то и пускать сразу.
Циферку "раз" видишь на превьюшке? 😁 Будет ещё по докеру
@@letsCodeDru Андрей, ты ж контент для программистов делаешь... Как там было "Купи десяток яиц, а если не будет, то колбасы." :))) 1 of 10 писать надо :)))
@@alexeysharandin7364 каждый мой видос - квест. Решайте))
Отличное видео! спасибо
Подскажите по таймингу 24:32 - в данном случае файлы с локальной машины (/home/dru/dev) копируются в контейнер и доступны по пути /home/new_dru относительно данного контейнера, либо файлы с локальной машины "расшариваются" с данным контейнером, и из данного контейнера, по ссылке /home/new_dru относительного данного конейнера, доступны файлы, которые по факту находятся на локальной машине в /home/dru/dev?
расшариваются
Модно, классно, молодёжно.
Можно вопрос, предположим у меня набор микросервисов, и один из них обращается к БД. Сама база в контейнере, данные мапятся с хоста. Вопрос, какие права должны быть у папок и файлов в директории которую мапим для БД?!
cпасибо, очень доходчиво и толково! не знаю обратил ли кто-то внимание на оговорку слипи трэп :))
Просто класс.
Минута примерно 19:15 про exec. Не получается выполнить даную команду так как эта команда требует что-бы контейнер был уже запущен. Я пишу docker start abc, но оно не запускается. Следственно команд exec тоже!!! В чем проблема?
если разобрался, скажи почему контейнер падает сразу после старта плз
Давно уже смотрю твой канал.
Ну почему же виртуализация... ай-яй-яй!
Докер - это контейнеризация. Эта концепция чем-то схожа с виртуализацией, но только внешне. Внутри это разные вещи.
Видео как базовое для новичков в самый раз, но название режет глаз)
upd.
Видео пересмотрел еще раз, да ты вроде и говоришь про контейнеризацию, но довольно вскользь
Контейнеризация - метод виртуализации
ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F
Посему она не "чем-то схожа с виртуализацией", а является ею.
Как не крути, это все виртуализация. Вскользь - я не официальная страница документации, как ни крути))
Цель моих видео - дать вектор изучения новичку, который не знает как поступиться :)
Может кто знает, пробовал запустить postgres, как в видео с ключом -d потом сделал пулл, но как итог у меня запустился постгрес и сразу же остановился. Если буду писать старт, то тоже самое запустится и мгновенно остановится
+++ такая же шляпа
спасибо, все классно.ждем продолжение...
Ребят Хелп не получается запустить постгрес
sudo -u postgres psql -h localhost
sudo: unknown user: postgres
sudo: unable to initialize policy plugin
нашел решение?
Спасибо, ты просто красавчик
По команде ctop запускается типо диспетчера задач) предварительно сделал sudo apt install ctop
Спасибо!
Это же топчага годнотная!!!
С докером на винде еще отдельная пляска в том, что official-way - это установка на win10 pro с hyper-v. А если у вас не прошка, то начинаются пляски с бубном по установке docker-toolbox, который помечен как legacy, причем вся эта хренотень устанавливает виртуалбокс с виртуалкой, на которой крутится линукс, на котором уже крутятся контейнеры. В общем жутко неудобная штука. Я когда вынужден был работать некоторое время на виндовой машине, плевал на все, и поднимал в корпоративной open nebula виртуалки с нужными мне сервисами. Люто неудобно в общем.
Спасибо за ролик!)