Уроки Docker для начинающих / #4 - Dockerfile и свои образы

Поділитися
Вставка
  • Опубліковано 26 вер 2024

КОМЕНТАРІ • 98

  • @alqueswan7164
    @alqueswan7164 Рік тому +103

    Сейчас (2023) расширение для контейнеров в VSCode называется Dev Containers

  • @nakamasama
    @nakamasama 2 роки тому +32

    Я настолько преисполнился в своём познании... Всегда интересно изучать что-то новое. Я под первым уроком задавался вопросом: кто бы мне мог нормально объяснить суть контейнеров. Тогда действительно было непонятно. Но начиная с третьего урока на практике я осознал жизнь бытия. Благодарю

  • @cchbfdsgjhv9647
    @cchbfdsgjhv9647 Рік тому +6

    Спасибо, что разобрал тему на примере работы с java😂
    Безмерно благодарен❤

  • @Aqwsaful
    @Aqwsaful 9 місяців тому +2

    Спасибо тебе добрый человек! Очень интересный материал и объяснение!!

  • @MrMegaFirestarter
    @MrMegaFirestarter Рік тому +28

    Сейчас вроде бы Remote Containers для VScode это Dev Containers от того же Microsoft

  • @ankub7835
    @ankub7835 2 місяці тому

    Спасибо большое за контент😊, намного понятнее стало что это за кит такой😂😂

  • @akaumorist
    @akaumorist Рік тому +11

    Совет. Если у вас при вводе команды docker build . - выдает ошибку failed to solve: the Dockerfile cannot be empty - то это значит что вы не сохранили сам файл проекта. CTRL+S или хз как в Маке, и этой ошибки не будет

    • @kreex
      @kreex Рік тому +4

      Вот спасибо тебе.

    • @Утятя-к4к
      @Утятя-к4к 7 місяців тому +1

      Really you nice men

  • @natah7598
    @natah7598 Місяць тому

    Спасибо ❤

  • @IhorDemchenko-n7t
    @IhorDemchenko-n7t 7 місяців тому +1

    лайк+подписка+коммент)))) Нужно по Kubernetes, Ansible, Terraform, Azure,GCP, AWS. Знаю - не треснет

  • @CarbonMetallicik
    @CarbonMetallicik 7 місяців тому

    Супер разбор, спасибо.Хотел додать что для удаления образа можно использовать "docker rmi ...." вместо "docker image rm ...."и не нужно писать всё ID образа достаточно 2-3 первых символа.

  • @watchtvshow2552
    @watchtvshow2552 Рік тому +6

    Выдаёт ошибку, что не удалось загрузить или найти класс мейн

  • @Shell_26
    @Shell_26 Рік тому +9

    Если у вас после команды build образ показывается в консоли, но его нельзя удалить (No such container: ID), а в приложении докера образа не видно (у меня образы собранные по примеру в видео отображались только в терминале) - попробуйте удалить образ командой "docker rmi ID". После этой команды у меня образ удалился и другие созданные из Dockerfile образы стали отображаться в приложении Docker

  • @igora6367
    @igora6367 Місяць тому

    Класс

  • @maxreshetnik3943
    @maxreshetnik3943 2 роки тому +8

    Молодец, хороший курс по докеру для новичков, резануло только слух "порядок команд не важен" исполняться будет но порядок все-таки важен, от менее часто изменяющегося состояния команд к более частым сверху вниз

    • @stangevg
      @stangevg 2 роки тому

      Да, я тут недавно несколько часов голову ломал, почему у меня не запускался Apache, а всего лишь не в том порядке.

  • @timbright397
    @timbright397 Рік тому +4

    Remote containers похоже теперь Dev Containers называется

  • @Andrzej3935
    @Andrzej3935 2 роки тому

    Спасибо огромнейшее!

  • @TomBombadil-h3g
    @TomBombadil-h3g 9 місяців тому

    Спасибо!

  • @alexandratopalidi2572
    @alexandratopalidi2572 Рік тому +4

    Спасибо большое за такие понятные видео!) Подскажите, пожалуйста, есть ли подобные видео насчет портов? не совсем поняла откуда мы взяли 3001 и т.д.

    • @Александр-х5х8г
      @Александр-х5х8г 8 місяців тому

      Можно указать любой свободный порт. 3001 просто для примера был указан. Для большего понимания, нужно изучать основы сетей TCP/IP

  • @hanma83292
    @hanma83292 10 місяців тому

    Круто!😁😁😁

  • @akaumorist
    @akaumorist Рік тому +2

    Второго расширения которое надо скачать нету в магазине расширений именно под тем именем, но как я понял, Dev Containers это то же самое

  • @VladislavMavrin
    @VladislavMavrin 9 місяців тому +2

    09:29 docker build . приводит к такой ошибке
    failed to solve with frontend dockerfile.v0: failed to create LLB definition: the Dockerfile cannot be empty

    • @leona_a
      @leona_a 7 місяців тому

      Нашли, как исправить?

  • @МагестЛоил
    @МагестЛоил Рік тому +2

    А почему мы ввели run и контейнер не запустился в докере хотя он написал привет мир? Или если метод майн останавливается то контейнер так же завершает поток?

  • @Nick-zu9bi
    @Nick-zu9bi 2 роки тому

    Спасибо

  • @ГлебВалерьевич-у6ы

    Ты лучший!

  • @andreyberkov1
    @andreyberkov1 4 місяці тому

    было бы классно разобрать это на примере С# или asp

  • @MrCrash20071
    @MrCrash20071 2 роки тому +7

    Столкнулся с проблемой при команде БИЛД failed to solve with frontend dockerfile.v0: failed to create LLB definition: the Dockerfile cannot be empty Далее перепробовал все. Ничего не помогает. И в терминале заметил у вас стоит кодировка Bash, а у меня только powershell. Можете подсказать как это все исправить? Спасибо за уроки

    • @lapatylin
      @lapatylin 2 роки тому

      У меня такая же проблема, ждём пояснения🤔

    • @markstasowski5580
      @markstasowski5580 2 роки тому +6

      откройте файл в блокноте из проводника, он будет пустой, чтобы все хорошо запустилось, нужно нажать "сохранить", это как для докер файла, так и для java

    • @geraltofrivia4749
      @geraltofrivia4749 2 роки тому

      Я в VScode нажал файл , автосохранение , и все сработало

    • @КаринаКорецкая-я4з
      @КаринаКорецкая-я4з Рік тому

      нужно включить автосохранение

  • @МаргаритаПопова-б7ь

    Помогло )

  • @liosha2007
    @liosha2007 2 роки тому +2

    Привет. Хочу дать небольшой совет, как обычный зритель. Юскейс: мне понравилось видео, я включил весь плейлист. Смотрю очередное видео, мне очень нравится, думаю что досмотрю и обязательно поставлю лайк. А может и коммент напишу. Видео заканчивается(что понятно по предложению подписаться), я беру в руку телефон, чтоб поставить лайк, а там уже включилось следующее видео. Теперь, чтоб поставить лайк тому видео, мне надо свернуть это, где уже началось что-то интересное, открыть плейлист, найти предыдущее видео, включить его, поставить лайк и вернуться обратно на новое видео. Многие ли станут так париться? Просто поставят лайк новому видео, а старое останется без него. К чему я веду, нужна финальная заставка. 3, а лучше 5 секунд. Не слишком длинная, но чтоб можно было успеть схватить телефон и влепить класс 👍

    • @nakamasama
      @nakamasama 2 роки тому

      Когда он говорит около 20 секунд в конце "подписываемся, ставим лайки блаблабла" можно спокойно успеть поставить лайк и переключиться на следующее видео

    • @liosha2007
      @liosha2007 2 роки тому +1

      @@nakamasama я смотрю и другие каналы, на многих из них подписаться предлагают в середине, а то и несколько раз за видео. Потому эти фразы для меня не являются признаком конца видео. В любом случае, я не говорю, что все тормозят, как и я. Только описал свой случай и предположил, что я такой не один.

    • @nakamasama
      @nakamasama 2 роки тому +2

      @@liosha2007 Я Вас понимаю. Про себя расскажу. Я тоже подписан на 125+ каналов и на всех подписаться просят и в начале, и в середине, и в конце видео. Поэтому это действительно не показатель. Однако лично у меня есть чуйка, когда видео заканчивается. Я не знаю, сколько длится видео, но по фразам типа "мы просмотрели", "мы проверили", "остальное будет в следующей серии" и т.д. (таких шаблонных фраз, если мозги поднапрячь, можно с три десятка вспомнить), я понимаю, что видео почти закончилось, ставлю лайк и перехожу на следующее видео, при чём до завершения видео остаётся от 10 до 60 секунд. Это столько авторы обсуждают после ролика, что они сделали в этом ролике и что планируют дальше. Я всегда это пропускаю.
      Но я сам так не всегда делаю. Например, если видео открыто на фоне и я его слушаю, но при этом я занимаюсь ещё чем-то другим (играю в игры, что-то пишу), то я слушаю и окончание видео и только после того, как оно завершится, ставлю лайк и перехожу на следующее видео.

    • @nakamasama
      @nakamasama 2 роки тому +3

      И ещё по поводу плей-листов. Можно просто выключить авто-воспроизведение. Тогда видео не будет переключаться. Вы спокойно успеваете поставить лайк и включить следующее видео. Мне легче и удобнее так, а когда видео само переключается - меня это бесит и раздражает. Кому-то одно нравится, кому-то второе. Это вкусовщина.

  • @alekseigrin6126
    @alekseigrin6126 2 роки тому +5

    если нужно снести образ то можно командой docker rmi hash
    ТЕ для кондейнера rm а для образа rmi

  • @KonstantinVasilevsky
    @KonstantinVasilevsky Рік тому +2

    У меня вообще интересная ситуация получается: "failed to solve with frontend dockerfile.v0: failed to create LLB definition: the Dockerfile cannot be empty"

  • @MR-bo8bv
    @MR-bo8bv 2 роки тому +1

    Интереснооо .-.

  • @kontent4049
    @kontent4049 2 роки тому +1

    Ставки на спорт 50 на 50 👍

  • @leilasalieva9756
    @leilasalieva9756 2 роки тому +1

    Какую команду писать в RUN, если образ Nodeдля JS?

  • @anastasiadorohina6812
    @anastasiadorohina6812 8 місяців тому

    На 14:40 образ по итогу не удаляется, сначала нужно rm контейнеры, которые он использует

  • @bolatmukashev2830
    @bolatmukashev2830 Рік тому +1

    минут 15 искал где в Visual Studio Code приложения, оказалось что у меня Visual Studio (без Code) и такое бывает)

  • @mirandal9987
    @mirandal9987 Рік тому

    Спасибо . Сними еще про Кали линукс

  • @alenka1593
    @alenka1593 Рік тому +1

    Итого не удалялся образ как в команде, даже остановка контейнера не помогла который его использует, помогло удалить контейнер и затем удалить образ

  • @АндрейФедоров-к1ч
    @АндрейФедоров-к1ч 9 місяців тому

    Обязательно нажмите сохранить файл докер и отдельно файл джава, только после собирайте и запускайте!

  • @andreyberkov1
    @andreyberkov1 4 місяці тому

    ктонеть подскажите образ для ASP пжлста.. или для того чтобы запустить веб приложение на асп нужно еще образ операционной системы установить?

  • @Th3_g3ntl3m3n
    @Th3_g3ntl3m3n Рік тому +1

    Всем привет. Подскажите, все делал как по уроку, а в репозитории у меня так не появился файл с таким же весом, как и openjdk. Какие либо расширения дополнительно нужно было устанавливать?

    • @КамильАлиметов
      @КамильАлиметов Рік тому +1

      в процессе выполнения 'docker build .' никаких ошибок не вылезало?

  • @sacccp
    @sacccp 2 роки тому +2

    Добрый день, не пойму у меня после команды docker run -p 3001:8001 b3b05af661be пишет что /bin/sh: [java,: command not found :((

    • @DimaBulavenko
      @DimaBulavenko Рік тому

      CMD ["java", "Main"] java и Main должны бить в двойных кавычках

  • @tema_skakun
    @tema_skakun Рік тому

    11:20
    если не удалить созданный образ и ещё раз сделать docker build. создастся ещё один образ, который будет дочерним к первому?

  • @ОльгаКущ-и6щ
    @ОльгаКущ-и6щ 2 роки тому +3

    Можете, пожалуйста, написать такой же код только для питона. Не понимаю, что нужно прописывать в run и cmd.

  • @romixweb
    @romixweb Рік тому +1

    нонче Remote - Containers называется Dev Containers

  • @18maisi
    @18maisi Рік тому

    Изображение ??

  • @g0tem449
    @g0tem449 Рік тому +2

    максимально не удобно натягивать это видео на питон, если делаешь первый раз

  • @nilsharafutdinov3679
    @nilsharafutdinov3679 8 місяців тому

    расширение для VisualStudio - Remote Containers не найдено, ближайшее это Dev Containers (по описанию совпадает 100%)

  • @EgorDemeshko
    @EgorDemeshko 7 місяців тому

    если образ это blueprint, а контейнер непосредственно окружение в которой все работает. так может файлы будут скопированы в контейнер, а не в образ. а то я путаюсь.

    • @EgorDemeshko
      @EgorDemeshko 7 місяців тому

      похоже все же образ

    • @EgorDemeshko
      @EgorDemeshko 7 місяців тому

      тоесть image это файлы кода, разного кода, в том числе хоть операционки, если это убунту. грубо говоря файлы и папки на выключенном компе., конгтейнер всетаки среда исполнения, и если контейнер запущен это всеравно что включить комп.

    • @EgorDemeshko
      @EgorDemeshko 7 місяців тому

      да. название зря не указали)) погуглил docker build -t myapp - myapp собственно название.

    • @EgorDemeshko
      @EgorDemeshko 7 місяців тому

      где-то ж услашал что образ blueprint так и засело в голову. что-то важно пять дней подряд не можешь запомнить, а что-то мимолетное прям глубоко закапывается.

    • @EgorDemeshko
      @EgorDemeshko 7 місяців тому

      нажми на кнопку, получишь результат.

  • @bubblegum21
    @bubblegum21 2 роки тому +1

    Вот не понял, зачем здесь папка java указывается в COPY и WORKDIR. Она ведь не используется в итоге.

    • @dmitriibarsukov4113
      @dmitriibarsukov4113 Рік тому

      Команда WORKDIRиспользуется для определения рабочего каталога контейнера Docker в любой момент времени. Команда указана в Dockerfile.
      Любая RUN, CMD, ADD, COPYили ENTRYPOINTкоманда будет выполняться в указанном рабочем каталоге.

  • @Тест-ы8ю
    @Тест-ы8ю Рік тому

    c 0:54 от куда те приложения скачивать? Ты обьясни нормально!

    • @pugreptiles4601
      @pugreptiles4601 Рік тому

      это редактор, можно notepad++ использовать вместо него

  • @blackmulthumor
    @blackmulthumor 2 роки тому

    А можно допустим написать игру на каком-то языке для виндовс и запустить его на линукс с помощью докера?

    • @i.v.a.s.99
      @i.v.a.s.99 Рік тому

      Засунь винду в докер

  • @saiko_rodion
    @saiko_rodion 8 місяців тому +11

    Весь этот курс - издевательство какое-то. Клиент: я хочу построить спорткар своими руками. Помощник: - обучает как сделать деревянную повозку. Так и эти видеоуроки. Они бессмысленны. Никто не занимается докером ради приложения уровня "хелло ворлд". Человек который изучает докер - это программист который написал проект с кучей зависимостей, и хочет его запустить в докере. Соответственно у него млн вопросов из-за ошибок которые он получает но не знает что с ними делать. Например: я юзаю мавен, мне уже не подходит простой openjdk, который к тому же отказывается компилить проекты которые юзают java 21. Как вообще работать с зависимостями Spring? Selenium? как докеру понять что мне нужно не просто запустить javac main а мне нужно сраный мавен стартануть а тот должен запустить спринг, ну или наоборот, хер знает как оно там под капотом работает. И потом где эти директории которые прописываются типо /usr/src/app ....Где они? Их нет ни в докере, ни в его директории хранилища, ни в проекте... А после пары неудачных запусков докерфайла у меня - 9гб места на диске С, а докер показывает просто полурабочий образ весом 500мб. Что с этим делать? Почему докер жрет гигабайты быстрее чем я обучаюсь? ВОт на эти вопросы я хочу получить ответы изучая докер. А не вот это вот все....

    • @SuhoiMan
      @SuhoiMan 8 місяців тому +1

      Читаешь мои мысли дружище

    • @ПаатаБалиашвили
      @ПаатаБалиашвили 7 місяців тому +4

      ну неудвивтельно, что ты не можешь решить все эти проблемы, ведь ты даже прочитать текст внимательно не можешь, куда уже там докер. Курс называется "для начинающих". Что ты хочешь от него? С твоими вопросами только гуглить и искать инфу самостоятельно, а не курсы для начинающих смотреть.

    • @saiko_rodion
      @saiko_rodion 7 місяців тому

      @@ПаатаБалиашвили Докер априори начинающим не нужен. Все равно что в детском саду преподавать высшую математику, назвав курс - высшая математика для начинающих....

    • @АртемКазрагис
      @АртемКазрагис 7 місяців тому +4

      Хреновый ты программист, если даже не знаешь как все под капотом работает и не можешь понять для чего мавен и ботинок

    • @saiko_rodion
      @saiko_rodion 7 місяців тому

      ​@@АртемКазрагис Видимо я лучше тебя, раз я первым разобрался с докером и со всем остальным мусором который никак не влияет на мой заработок. А ты только ща посмотрел видос и отписал. Я уже проект успел доделать, задеплоить и получить деньги, пока ты тошнотворно изучал то, что в принципе не важно. 99.9% программистов не понимают почему компьютер понимает исключительно бинарный код, но как-то ж программируют... А я знаю, и дальше че? Мне кто-то заплатил хоть раз за эти знания? Нет. Вот и знание мавена и прочего шлака элементарно можно пропускать потому что за это не платят. Платят по факту конечного результата. Лучший айтишник это тот кто добивается результата так же как игроки спидраннеры. А все остальное вкусовщина. Хочешь знать - учи. Дело каждого.

  • @kanvoy
    @kanvoy 2 роки тому +1

    Спасибо большое!

  • @ZeBatua
    @ZeBatua 9 місяців тому +1

    Тупейшее объяснение докерфайла. Ничего не понятно.
    Зачем указать везде корневую папку. Покажи как работать, когда файл находится глубоко в проекте.
    На винде можно запутаться со слэшами, но урок конечно записан на макОС, которого у большинства нет и никогда не будет, а под винду никаких оговорок не сказано.
    Переслушал объяснение про RUN и CMD. Объяснено на отвали, каким то кривым языком. Попытка объяснить разницу выглядела как скорее попытка объяснить схожесть.

  • @ЖеняТерехов-х5я
    @ЖеняТерехов-х5я 2 роки тому +1

    первый

  • @Юнус7777
    @Юнус7777 2 роки тому +1

    Четвёртый

  • @skillmantd
    @skillmantd 4 місяці тому

    Как по мне так неудачный пример для урока...

  • @nikolai.horetski
    @nikolai.horetski 7 місяців тому

    Блин, ну не джавак же, мои ушиииии, как же режет😂
    Это же простой английский 1 класса - алфавит 😮
    Мы же не говорим к++, мы говорим си++, поэтому джаваси))))

    • @nekolay9693
      @nekolay9693 5 місяців тому

      Английский первого класса тут не причем. Если javac и читается как джаваси, то только потому что "C" это коращение второго слова. Вы же не будете читать слова aztec, comic, Mac, как атстеси, комиси, маси. С точки зрения английского, он произнес как раз-таки правильно.