docker Базовые команды на примерах по шагам - создание образа и запуск контейнера (Отладка)

Основной пример есть в официальном сайте: https://docs.docker.com/get-started/02_o...

Для получения контейнера потребуется примкерно в следующее:

  1. Переходим в нужную напр папку
  2. Создаем так Dockerfile, например такой:
    FROM node:18.15-alpine
    WORKDIR /var/www
    
    CMD node -i
    

    -- обратите внимание, запускать контейнер nodejs мы будем в интерактивном режиме (-i), чтобы далее именно эта команда выполнилась по умолчанию при работе с docker run ниже

  3. Построим образ контейнера с помощью команды вида:
    docker build -t node-test .

    где

    • -t - флагдля пометки образа тэгом/именем, где имя "node-test"
    • точка после имени - путь к Dockerfile
  4. Далее можем вывести список образов:
    docker images -a

    чтобы убедиться что node-test там появился

  5. Запустим контейнер через docker run с указанием имени ранее созданого образа:

    docker run -i node-test 

    Кстати, чтобы при интерактивном вводе далее работали стрелки влево и вправо для перемещения по строке, нам потребуется не просто поток ввода флаг -i а еще и -t - эмуляция терминала TTY, команда примет вид:

    docker run -it node-test

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

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

  6. После старта контейнера с указанными опциями поток ввода будет открыт на запись и можно будет использовать его для ввода JS в интерактивном режиме, напр. наберем строку и нажмем энтер:
    console.log('Hello world!');

    получим ожидаемый ответ:

    Hello world!'
    undefined

Для быстрой пересборки образа и запуска контейнера можно использовать комбинированную команду:

docker build -t node-test . && docker run -i node-test

Key Words for FKN + antitotal forum (CS VSU):