Просто о контенеризации. Docker
HTML-код
- Опубликовано: 2 окт 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 run -d --name pg postgres" не стартовала контейнер в фоне, смотрите логи этого контейнера. Конкретно у меня ругалось что нужно указать superuser password для базы и тд. Но если что автору большое спасибо! После того как прошелся по различным туториалам ничего не понял и только тут все как в 1 классе очень просто про сложные вещи, браво!
Отлично рассказываешь, сразу уловил суть! Никак руки не доходили до изучения темы контейнеризации, всё обходился виртуальными окружениями, но благодаря твоему дару объяснять свет начинает проливаться!
Спасибо вам огромное.
Чем больше узнаю докер, тем больше понимаю, чего я до сих пор терял.
В понедельник диплом по этой теме защищаю, спасибо большое !
Ну че, сдал? Какая оценка? Докер то юзаешь, или как сдал диплом - не запускал ни разу?)
Отличное видео, понятно, доходчиво, лаконично. Я долго искал внятное объяснение Docker, очень благодарен автору!!!
Здорово! единственное под убунтой не удалось к постгресу подключиться, как на 23:03. контейнер запущен а команда
~$ sudo -u postgres psql -h localhost
выдает
sudo: неизвестный пользователь: postgres
если меняю имя пользователя на моего текущего - не понимает остальные команды. или у меня на локальной должен быть установлен и запущен postgres чтобы это срабатывало?
PS: с работой в терминале знаком слабо, возможно отсюда непонимание, но поиск по ключам вообще ничего не дал.
Да, это я лопух. Клиента постгрес надо отдельно устанавливать локально
@@letsCodeDru а если не устанавливать локально, можно ли обратиться через пользователя в контейнере?
спасибо, полезное видео
Мастер в деле!! Спасибо!!
Аааааагонь!
Все по делу, быстро и понятно!
Огромное спасибо!
Спасибо !
очень хороший формат видео !
Спасибо огромное за видео! в куче ютуб мусора тяжело было отыскать это видео с грамотными примерами и объяснением предназначения докера.
Дай Бог здоровья автору. Среди кучи нудного и усложненного материала должен был наконец появиться настоящий бриллиант, который просто расскажет об очень важных вещах.
Если кому интересно, 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
Автор, спасибо большое за ролик!!! Все понятно, всё по полочкам разложил!!!
Как всегда кратко и очень информативно. Часто переслушиваю твои стримы на фоне, очень приятный голос )
спасибо!
Ребят Хелп не получается запустить постгрес
sudo -u postgres psql -h localhost
sudo: unknown user: postgres
sudo: unable to initialize policy plugin
нашел решение?
Команда 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
Только вот не указано, что это обязательные параметры, без которых работать не будет. :)
очень дохочиво и по делу
Это одни из самых полезных 25:33 минут моей жизни) Спасибо большое :)
Минута примерно 19:15 про exec. Не получается выполнить даную команду так как эта команда требует что-бы контейнер был уже запущен. Я пишу docker start abc, но оно не запускается. Следственно команд exec тоже!!! В чем проблема?
если разобрался, скажи почему контейнер падает сразу после старта плз
Редко пишу комментарии но у тебя талант понятным языком объяснять, столько красивых превьюшек везде и смонтированно местами лучше, но объясняют ужасно, спасибо!
Очень хорошо разъяснил. Однозначно лайк!!
У кого будет проблема подключения к postgres на 23:09 - Необходимо дополнительно установить пакет postgresql-client, сама команда будет выглядеть следующим образом - "sudo psql -U postgres -h localhost"
если у кого-то под виндой не получается дать контейнеру доступ к жесткому диску (последняя команда)
Error response from daemon: Drive has not been shared.
в настройках докера нужно разрешить доступ к диску (расшарить его) github.com/docker/for-win/issues/3035
только на этой неделе рассказывали на работе лекцию про Докер. Не сказать, что я не понял основные принципы, но хотелось бы реально увидеть, как все это работает. А то пока мои знания на уровне "не учил, но читал". Спасибо за урок)
Да докер достаточно прост по сути своей. Ну а "глубокое" понимание его - это понимание работы cgroups в линукс
на 22:10
docker run --name pg11 -p 5433:5432 -e POSTGRES_PASSWORD=password -d postgres
sudo -u postgres psql -h 0.0.0.0 -p 5433
может кому пригодиться
sudo: неизвестный пользователь:postgres>>>>>>> не удается инициализировать модуль политики
спасибоооооо чувак
Добрый день, автор и коллеги! Все понятно, все супер, очень доходчиво... кроме последнего пункта - там, где подключаемся к 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 на убунте
Omg я дождался докер на этом канале!
cпасибо, очень доходчиво и толково! не знаю обратил ли кто-то внимание на оговорку слипи трэп :))
Единственное видео, в котором понятно объясняется докер. Большое спасибо!
После выполнения комманды "docker run -d --name pg postgres" этот котейнер имеет статус "Exited (1)". Не понимаю почему.
Документация к postgres на сайте докера - "$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres".
Андрей, как всегда четко и по делу.
А что еще планируешь по Docker-у? Хотелось бы увидеть формирование контейнера. Например засунуть в один контейнер *nix + DB + запущенный "свитер", который можно перетащить можно куда то и пускать сразу.
Циферку "раз" видишь на превьюшке? 😁 Будет ещё по докеру
@@letsCodeDru Андрей, ты ж контент для программистов делаешь... Как там было "Купи десяток яиц, а если не будет, то колбасы." :))) 1 of 10 писать надо :)))
@@alexeysharandin7364 каждый мой видос - квест. Решайте))
Ништяк! Мужик!! Базовые вкусности лучше чем где-либо показаны, дальше можно особо не вникать сразу, и делать красиво уже из этого.
Работать можно с этим. Мне для локалхоста пригодится капец как, долго обходил тему не видел толковой инфы, а тут бац! И все понятно, и многие темы наперед открыты, а главное можно работать без выкручивания гениталий.
Почему когда я запускаю команду например docker start pg оно у меня сразу выходит, а когда docker stop pg оно ждет несколько секунд и только потом выходит. Если кратко, то оно работает наоботрот!! Почему так происходит?
С докером на винде еще отдельная пляска в том, что official-way - это установка на win10 pro с hyper-v. А если у вас не прошка, то начинаются пляски с бубном по установке docker-toolbox, который помечен как legacy, причем вся эта хренотень устанавливает виртуалбокс с виртуалкой, на которой крутится линукс, на котором уже крутятся контейнеры. В общем жутко неудобная штука. Я когда вынужден был работать некоторое время на виндовой машине, плевал на все, и поднимал в корпоративной open nebula виртуалки с нужными мне сервисами. Люто неудобно в общем.
Thank you so much.
Гениально!!!!!!!! Наконец-то вкурил Docker!!!!!! За 2 вечера видео проработал и теперь могу начить других! Спасибо!
docker-compose up -d - Наше все
docker-compose up -d --build - Пересобрать если внесли изменения в Dockerfile
docker-compose up -d --build --force-recreate - Принудительно пересобрать все контейнеры
Спасибо за видео,
-d это daemon
-v это volume, а не value (~24:20)
-d это --detach
Сам ты -d
Давно уже смотрю твой канал.
Ну почему же виртуализация... ай-яй-яй!
Докер - это контейнеризация. Эта концепция чем-то схожа с виртуализацией, но только внешне. Внутри это разные вещи.
Видео как базовое для новичков в самый раз, но название режет глаз)
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
Посему она не "чем-то схожа с виртуализацией", а является ею.
Как не крути, это все виртуализация. Вскользь - я не официальная страница документации, как ни крути))
Цель моих видео - дать вектор изучения новичку, который не знает как поступиться :)
А что-то вроде ctop на windows можно поставить?
лучший!!!
По команде ctop запускается типо диспетчера задач) предварительно сделал sudo apt install ctop
Хороший понятный видос. качественный.
Честно говоря, хочется послать автора ... сменить название ролика или пересмотреть содержимое.
мля
блин я так недеялся что вы проект запустите switter или HelloWorld какой нибудь написанный в ide.
А какая версия Alpine устанавливается? Если посмотреть на сайте Alpine, у них дистрибутивов тьма тьмущая
А как установить --volume для windows? docker run -it -v /home/java:d:/java/protject ubuntu
Добрый день. Директория создалась афайлов нет что это может быть
Это называется "паравиртуализация"
sudo -u postgres psql -h localhost
sudo: unknown user: postgres
sudo: unable to initialize policy plugin
Подскажите, пожалуйста, куда смотреть?
Появилось в рекомендациях ютуба, думал про дома из контейнеров что-то будет, нихуя не понял, но очень интересно.
Здравствуйте. Подскажите пожалуйста, на 3:27 откуда появляется вот этот черный экран? Что открывать? Куда вы пишете команды?
Запускаю docker на винде, процесс/контейнер с Postgres запустил. Не могу подключится к Postgres-у, команда sudo ... в терминале cmd не работает. Подскажите, пожалуйста, альтернативный вариант?
Норм видос!!! Это ещё актуально, или уже всё по другому?
Привет! хочу удалить образы. Пишу docker rmi $(docker images -q ), но вылетает , что не видит флаг -q Почему так ?
Если у вас так же как у меня команда "docker run -d --name pg postgres" не стартовала контейнер в фоне, смотрите логи этого контейнера. Конкретно у меня ругалось что нужно указать superuser password для базы и тд. Но если что автору большое спасибо! После того как прошелся по различным туториалам ничего не понял и только тут все как в 1 классе очень просто про сложные вещи, браво!
А какое доверие к репозиторию Docker? Кто сказал, что они заслуживают доверия? => Это очередной модный ритуальный обман (подобных было уже очень много).
Чувстую себя тупым =( Оч грустно. Я просто хотел развернуть вна raspberry контейнер с монго. Но там какая-то байда с arm и вообще чет оч сложно
Жаль, что мы так ничего и не услышали про виртуализацию, хотя я и послушал только 3 минуты, но больше - жалко, да и уши, тоже, жалко.
Без иронии: Docker - это про контейнеризацию.
Огромная разница!
немного не понял пробросы портов, у меня уже стоит постгрес на машине на порту 5432 , зачем при создании контейнера указывать порт 5432, ведь он уже занят? и psql как раз подключается к моей основной базе.
У меня похожий вопрос. Команды psql по умолчанию в системе нет. Что бы она появилась, нужно поставить локально postgres. И тогда она будет работать на порту 5432 локально. Вопрос, как какой базе подключимся, к локальной или к контейнеру ?
))))) не нужно чтобы он подключался к твоей основной базе, укажи другой порт на машине.. нужен именно "докерный постгрес", в этом вся суть) странно , что ты не спросил - "зачем мы скачивали образ postgres, если у меня она уже установлена"
Я со всех сторон слышу, что субд в контейнере ставить нельзя, по крайней мере в прод... Да и Андрюха в конце видео сказал, что у него все базы установленном в ОС. Так зачем тогда база в контейнере?
Не очень понятно следующее: при удаление показали список "промежуточных слоев" (12:31), указав при этом, что в этих прослойках содержатся данные контейнеров. Так?
Но далее говорите, что эти данные (прослойки) живут покуда живы сами контейнеры, однако Вы выше удаляйте контейнеры, но откуда тогда после их удаления остались прослойки, ведь они тоже должны были удалиться??
А можно ли подключиться из докер контейнера к базе данных на локальной машине? Т.е. кейклоак развернут в докере и надо взаимодействовать с БД на локальной машине. Спасибо большое заранее!
Модно, классно, молодёжно.
Можно вопрос, предположим у меня набор микросервисов, и один из них обращается к БД. Сама база в контейнере, данные мапятся с хоста. Вопрос, какие права должны быть у папок и файлов в директории которую мапим для БД?!
как так что у вас постгрес сапускается без ошибки, а у меня требует логин и пароль...
вы не упомяную и каком то файлике где у вас эти пароли лежат
классно супер !!!!! прям балдею от падачи информации ! все кратко сжато , нет "воды" !!!!
Постгри - произносится правильно.
видео очень полезное, все доступно и понять, спасибо
Лукас
Отличное видео. Спасибо
Про удаление контейнеров, можно удалять по первым символам айдишника - docker rm 4cb1
Как всегда все на высоте! Аннотация по тайм-кодам топ!
Жаль, что нельзя поставить второй лайк - первый я поставил при первом просмотре, а вот сейчас смотрю уже по работе... Спасибо за видео!!!
Целый день смотрел твои видосы. Теперь каждому видео лайк автоматом от меня
это не виртуализация!!
лучшей подачи материала я ещё не встречал,
огромная благодарность!
Хороший тайминг. Если медленней, то я бы заснул.
Очень доступно и исчерпывающе. Спасибо автору
Отличный урок ) Все понятно и информативно.
Спасибо
Это
Просто
Охуенно
За докера спасибос, наконец-то..
Docker мастера боится
Подскажите по таймингу 24:32 - в данном случае файлы с локальной машины (/home/dru/dev) копируются в контейнер и доступны по пути /home/new_dru относительно данного контейнера, либо файлы с локальной машины "расшариваются" с данным контейнером, и из данного контейнера, по ссылке /home/new_dru относительного данного конейнера, доступны файлы, которые по факту находятся на локальной машине в /home/dru/dev?
расшариваются
я стал превелег-подпищеком, вот мои усы :-})
Уважаю твои усы) Спасибо за поддержку)
Это же топчага годнотная!!!
Отличная подача! Довольно коротко и понятно. Продолжай так же вырезать лишние движения (не влияющие на суть) это здорово экономит зрителям время.
А есть в планах Swagger?
0:13 "средство виртуализации"
Разве не контейнерезации ?
"если вы не поняли, то почитайте документацию". Типичное видео от погромистов :)
виртуализация на программном уровне = контейнеризация
Отличная работа, спасибо за ваш труд :)
*Очень просто и понятно объяснил, мне сразу всё стало понятно. Большое спасибо тебе за труды, реально помог сэкономить кучу нервов и времени!*
Спасибо! Как всегда шикарный урок!!!
Ух ты! Это же прям то, что нужно!
реальная годнота!
Крайне доступно и информативно. Спасибо!
Андрей, добрый день! Знаю, что ты читаешь комментарии. Подскажи, а почему не получается скачать с докерхаба например официальный веблоджик от оракл? Даже после команды "докер логин". Это типа он у них приватный? Для (нищебродов) комьюнити он недоступен?
Хз. Не сталкивался с подобной проблемой. Но weblogic и websphere вроде только за деньги распространяются, если я верно все помню
офигеть
Мощно! спасибо!