суббота, 14 июня 2025 г.

Docker

 Установка и наcтройка


Команда нициализации запуска контейнера (docker run) с аргументом debian (debian - имя образа или image)
$ docker run debian echo 'Hello World'

Подключиться к интерактивной оболочке  контейнера и выполнить какую-нибудь команду:

$ docker run -i -t debian bash

 Запуск контейнера, дав имя хосту:

$ docker run -h HOST -i -t debian bash

 По умолчанию команда docker ps показывает только запущенные контейнеры. С аргументом  -а (docker ps -a) показывает все контейнеры, включая остановленные:

docker ps

 Docker diff — команда, которая отслеживает изменения в файловой системе контейнера Docker. Она показывает, какие файлы были добавлены, изменены или удалены внутри работающего или остановленного контейнера.

$ docker diff practical_nightingale

 Всё что было записано в stdout и  stderr контейнера во время его работы:

$ docker logs practical_nightingale

 Удаление контейнера:

$ docker rm practical_nightingale

 Статьи:

Почти все, что вы хотели бы знать про Docker

Шпаргалка с командами Docker

Dockerfile



Сборка образа

Переходим в директорию с Dockerfile и вызываем следующую команду (Используется флаг -t что значит тэг, позволяет дать имя образу который мы собираем. Через точку в конце команды мы говорим доккеру использовать Dockerfile внутри директории ) :
$ docker build -t test_app .

Теперь мы можем запустить наше приложение:

$ docker run test_app python /app/app.py 

Запуск приложения с аргументом -p, который принимает два числа разделенных двоеточием. Первое число - какой порт хоста использовать для связи с портом внутри контейнера, второе число - на какой порт внутри контейнера перенаправлять запросы с порта хоста

$ docker run -p5050:5000 test_app python /app/app.py 


 Проверяем, что все работает:


Добавляем в Dockerfile команды, которые выполнятся в момент запуска контейнера, что избавит нас от необходимости в команде запуска стартовать приложение собственноручно(WORKDIR и ENTRYPOINT): 

Правило: помещать на верх Dockerfile такие команды, которые будут выполнятся редко, а вниз которые будут запускаться чаще. 


Снова собираем:

$ docker build -t test_app .

Снова запускаем контейнер(-e - передать переменные в окружение контейнера) 

$ docker run -p5050:5000 -e "SERVICE_NAME=service1" test_app

 (было  $ docker run -p5050:5000 test_app python /app/app.py)

Само приложение:


requirements.txt


Сайт для регистрации:

Логин через консоль:
$ docker login

 Список образов:

$ docker images

Для последнего успешного билда укажем репозиторий:

$ docker tag my_app muertecivil/test_app

Загрузка образа в репозиторий:

$ docker push muertecivil/test_app 

Загрузка образа из репозитория:

 $ docker pull muertecivil/test_app

Ссылки: 

docker container exec Start containers automatically

Комментариев нет:

Отправить комментарий