Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Docker запуск приложения в контейнере простыми словами


Docker запуск приложения в контейнере простыми словами

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

Простейшее приложение на питоне:
$ cat app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
 return 'Hello, World!'
if __name__ == '__main__':
 app.run(debug=True, host='0.0.0.0')

Зависимость, установленная в ОС для работы приложения:
$ cat requirements.txt
Flask==1.1.2

Файл образа нашего приложения с зависимостью:
$ cat Dockerfile
FROM python:3.8.12-alpine
ENV APP_HOME /app
WORKDIR $APP_HOME
COPY requirements.txt .
RUN pip install -r requirements.txt
ENTRYPOINT [ "python" ]
CMD [ "app.py" ]

ENTRYPOINT - программа при запуске контенера, CMD - аргумент
Если не указать ENTRYPOINT, по умолчанию сработает /bin/sh -c

Собираем образ:
$ docker build -t hw_image .

Посмотрим на образ в списке собранных:
$ docker images hw_image

Стартуем на основе образа контейнер:
$ docker run --rm -d -v `pwd`:/app -p 8080:8080 hw_image

--rm - удалить контейнер по завершению работы
-d - запуск контейнера в фоновом режиме
-v - каталог ОС привязывается к каталогу /app внутри контейнера
-p - привязывает порт ОС к порту контейнера

Посмотрим запущенные контенеры:
$ docker ps

Запрос:
$ curl http://127.0.0.1:8080
Hello, World!

Посмотрим логи контенера по id из прошлого вывода:
$ docker logs g543588frs33

Остановим контейнер по id из прошлого вывода:
$ docker stop g543588frs33

Удалим образ:
$ docker rmi hw_image

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект