Docker для полных новичков
HTML-код
- Опубликовано: 3 июл 2024
- Этот ролик про Docker простыми словами.
СОДЕРЖАНИЕ:
00:00:00 Введение. План действий.
00:01:18 Что такое Docker, зачем нужен и чем отличается от виртуальной машины
00:05:05 Разбираем GUI Docker Desktop. Чем контейнер отличается от образа (image)? Что такое volume?
00:09:24 Настройки докера в GUI
00:10:25 Пробуем запустить первый контейнер из интерфейса. Наблюдаем за файловой системой контейнера.
00:14:01 Пробуем удалять контейнер
00:15:37 Пробуем запускать контейнер из консоли. CLI-команды docker: pull, image, run, ps, --detach (запуск в фоне).
00:19:31 Входим в контейнер из консоли - docker exec. Играемся с файловой системой из консоли.
00:22:50 Создаём Dockerfile и контейнеризуем простейшее NodeJS-приложение. Базовый образ, зависимости и их установка.
00:26:44 Команда docker build. Установка рабочей директории WORKDIR. Копирование файлов COPY. Запуск приложения через CMD. EXPOSE для расшаривания порта.
00:30:45 Тег образа при билде. Успешный запуск контейнера из Докерфайла.
00:31:57 Особенности работы с проектом, который находится под Git. Файл .dockerignore.
00:34:00 Кэширование шагов билда (build cache). Чистка кэша докера - docker build prune.
00:39:08 После билда нужно пересоздавать контейнер
00:40:18 Как менять код проекта и сразу видеть изменения? Монтирование локальной файловой системы внутрь контейнера - mount bind
00:43:51 nodemon для live reload NodeJS-проекта.
00:46:07 Чиним расшаривание портов (флаг -p)
00:48:22 Создаём именованный вольюм (mount volume). Пример с созданием в вольюме тестового файла.
00:56:43 Самое ценное свойство вольюма - персистентность
00:57:47 Разворачиваем проект на VPS в ручном режиме
00:59:04 Вход в Docker Hub и консоли - docker login. Пушим туда свой образ.
01:00:55 Стягиваем образ на VPS и запускаем. Пробуем запросы к приложению, запущенному на VPS.
01:06:30 Заключение
***
Спринтбокс - сверхмощные VDS на суперскоростях!
sprintbox.ru/c5233
Промокод на кешбэк 50%: MAKEWEBME
⚛️⚛️⚛️
Пройди практический курс "Javascript Fullstack разработчик" от MakeWeb.me.
Детали тут: makeweb.me/course-js-fullstac...
Плейлист тут: • Курс "Javascript Fulls...
Телеграм для связи по курсу: @makewebchatme
💬 💬 💬
Присоединяйся к нашему Telegram-чату t.me/makewebme
======
erid: 2SDnje1Mj4k
Спасибо!👍 Прекрасное видео где все отлично разжевано по докеру! Ждем продолжения обязательно! 💪
отличное видео
Спасибо! Хорошее видео. Можете ci/cd еще показать с докером?
Будет ли docker compose с vite или next в планах?
для виндовзеров CMD ["nodemon", "-L", "your_file_here"]
Вообще на будущее прошу учесть, что новички еще на мак не заработали (или не считают нужным покупать), а если считают себя достаточно умными и сидят на линуксе - то сами способны разбираться с проблемами. Поэтому прошу учитывать это и делать видео кроссплатформенными
Для винды нет докера. Раньше он работал через VirtualBox, сейчас - через WSL. С линуксом в любом случае разбираться придётся.
@@Christopher_Holloway в последние пару лет на 10й нормально уже работает. Я сделал как хотел на Винде в итоге, все реально
@@Christopher_Hollowayуже давно есть
@@RamaRama-qv3jo ты сам придумал? Скинь ссылку если есть. Просто само ядро докера есть только для линукса.
нихрена не понимаю как это сделать на виндовз, уже мучат чат гпт, это лучшее что он выдал, но все равно не работает
"docker:run": "docker run -d --mount source=$(npm run getPath)/,target=/app,type=bind -p 5000:3000 test",
"getPath": "npm run --silent getRealPath",
"getRealPath": "node -e \"process.stdout.write(process.cwd())\"",
почему я хочу сделать адрес динамичным - потому что в реальном приложении, код будут запускать разные люди, и на разных платформах, и с разным путем папок, если каждый будет у себя менять этот файл, это будет снижать скороть разработки и онбоардинга.