Рубрики
Без рубрики

Docker, контейнеры и Django

Вам нужно знать Docker, если вы хотите выжить в мире разработчиков, особенно в том, что мы в 2021 году, так что вы … помечены Docker, Django, Python, JavaScript.

Вы должны знать Docker, если вы хотите выжить в мире разработчиков, особенно в том, что мы в 2021 году, поэтому вы должны были сделать это вчера, вы понимаете, о чем я, я имею в виду, Но эй, никогда не поздно.

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

И если вы никогда раньше не касались Docker Container, сначала мы пройдемся через настройку Docker, а также самые важные инструкции в DockerFile. Мы сделаем все шаг за шагом, так что не волнуйтесь.

Что такое Docker? С практической точки зрения, это просто способ упаковать программное обеспечение, поэтому оно может работать на любом оборудовании. Теперь, чтобы понять, как на самом деле работает этот процесс, есть 3 вещи, о которых вы должны знать:

1- Docker файл 2- Изображение 3- Контейнер

DockerFile – это план для создания изображения Docker. И Контейнер запускает процесс, и в нашем примере здесь у нас есть приложение Flask.

Нам нужно иметь сервер, который запускает ту же версию Флэста, и который также установил эти зависимости; Он работает на моем компьютере, но если кто -то еще с другой машиной пытается запустить его с другой версией колбы, это может сбое.

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

[Среда используется, чтобы указать, как запускается контекстная колба. Он контролируется с переменной среды Flask_env и по умолчанию к производству.]

И тогда любой разработчик может использовать файл Docker для восстановления среды, которая сохраняется в виде (неизменного) снимка, известного как изображение. Изображения могут быть загружены в облако, так что любой разработчик хочет запустить программное обеспечение, может вытянуть изображение, чтобы создать контейнер, который является процессом выполнения этого изображения. Другими словами, один файл изображения может быть настроен на то же самое, что много раз в разных местах. На мой взгляд, лучший подход для изучения Docker – это использовать его, и для его использования нам нужно будет его установить

Я настоятельно рекомендую установить настольное приложение Docker Desktop, если вы используете Windows или Mac, он устанавливает все, что вам нужно для командной строки, а также дает вам графический интерфейс, где вы можете осмотреть свои контейнеры, после установки у вас должен быть доступ к Docker от командная строка.

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

Итак, в Dockerhub есть изображение Hello-World, которое вы можете тянуть https://hub.docker.com/_/hello-world

И чтобы убедиться, что ваша установка работает правильно, выполните следующую команду:

Docker запустить Hello-World

Вы можете проверить все о Docker, набрав Just Docker и нажмите Enter

докер

Вы можете проверить свою версию Docker

Docker версия -v Docker Info Docker PS

Docker PS: дает вам список всех работающих контейнеров в вашей системе, вы заметите, как у каждого контейнера есть уникальный идентификатор, а также связан с изображением, и помните, что вы также можете найти ту же информацию из графического интерфейса Анкет

Кроме того, чтобы проверить, хорошо ли установлен Docker на вашем компьютере, входите в систему, вы можете открыть свой удар или командную строку, и вы могу

Другая вещь, которую вы захотите установить, – это расширение Docker для VS -кода, потому что это даст вам поддержку языка, когда вы пишете свои файлы Docker.

Теперь позвольте нам создать контейнер для приложения Django .. Вся эта следующая часть извлечена из официальной документации Docs.docker.com для Docker и как использовать Docker Compose для настройки и запуска простого приложения Django/PostgreSQL.

Определите компоненты проекта для этого проекта, вам необходимо создать DockerFile, файл зависимости Python и файл docker-compose.yml. (Вы можете использовать расширение .yml или .yaml для этого файла.)

Создайте пустой каталог проекта.

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

Создайте новый файл с именем DockerFile в вашем каталоге проекта.

DockerFile определяет содержимое изображения приложения через одну или несколько команд сборки, которые настраивают это изображение. После построения вы можете запустить изображение в контейнере. Для получения дополнительной информации о DockerFile см. Руководство пользователя Docker и ссылку DockerFile.

Добавьте следующий контент в Dockerfile.

От Python: 3 Env Workdir/Code Копировать требования.txt/code/run pip install -r redtion.txt copy./код/Этот DockerFile начинается с родительского изображения Python 3. Родительское изображение изменяется путем добавления нового каталога кода. Родительское изображение дополнительно изменяется путем установки требований Python, определенных в файле TEDS.TXT.

Сохраните и закройте Dockerfile.

Создайте требования .txt в вашем каталоге проекта.

Этот файл используется командой run pip install -r tedding.txt в вашем Dockerfile.

Добавьте необходимое программное обеспечение в файл.

Django> = 3,0, <4,0 .8 Сохраните и закройте файл Telect.txt.

Создайте файл с именем Docker-compose.yml в вашем каталоге проекта.

Файл docker-compose.yml описывает услуги, которые делают ваше приложение. В этом примере эти службы являются веб -сервером и базой данных. Файл Compose также описывает, какие изображения Docker используют эти сервисы, как они связываются вместе, любые объемы, которые они, возможно, должны быть установлены внутри контейнеров. Наконец, файл docker-compose.yml описывает, какие порты этих услуг выставляют. См. Справочник Docker-compose.yml для получения дополнительной информации о том, как работает этот файл.

Добавьте следующую конфигурацию в файл.

Версия: “3.9”

Услуги: DB: Изображение: Postgres Environment: – – – Web: Build:. Команда: Python Manage.py Runserver 0.0.0.0:8000 Объем: -.

Примечание:

Это использует сборку сервера разработки для запуска вашего приложения на порту 8000. Не используйте это в производственной среде. Для получения дополнительной информации см. Документацию Django.

Сохраните и закройте файл docker-compose.yml.

Создайте проект Django На этом этапе вы создаете стартовый проект Django, создавая изображение из контекста сборки, определенного в предыдущей процедуре.

Изменить корень вашего каталога проекта.

Создайте проект Django, запустив команду Docker-Compose Run следующим образом.

$ sudo Docker-Compose Run Web Django-Admin StartProject ComposeExample. Эти инструкции составляют для запуска Django-Admin StartProject ComposeExample в контейнере, используя изображение и конфигурацию веб-службы. Поскольку веб -изображение еще не существует, составьте его из текущего каталога, как указано в сборке:. Линия в Docker-Compose.yml.

Как только изображение веб-службы будет создано, Compose запускает его и выполняет команду Django-Admin StartProject в контейнере. Эта команда инструктирует Django создать набор файлов и каталогов, представляющих проект Django.

После завершения команды Docker-Compose перечислите содержимое вашего проекта.

$ ls -l

drwxr-xr-x 2 корневой корневой composeExample -rw-rw-r– 1 пользователь пользователь docker-compose.yml -rw-rw-r— 1 пользователь пользователь dockerfile -rwxr-xr-x 1 root root manage.py- rw-rw-r– 1 пользователь пользователь TELDES.TXT Если вы запускаете Docker на Linux, файлы, созданные Django-Admin, принадлежат root. Это происходит потому, что контейнер работает как пользователь root. Измените право собственности на новые файлы.

$ sudo chown -r $ user: $ user. Если вы запускаете Docker на Mac или Windows, вы уже должны иметь право собственности на все файлы, в том числе те, которые генерируются Django-Admin. Перечислите файлы, чтобы подтвердить это.

$ ls -l

Всего 32 -Rw-R-R– 1 Пользовательский персонал 145 февраля 13 23:00 DockerFile DRWXR-XR-X 6 Пользовательские сотрудники 204 февраля 13 23:07 ComposeExample -Rw-R-R– 1 Пользовательский персонал 159 февраля. 13 23:02 Docker-compose.yml -rwxr-xr-x 1 Пользовательский персонал 257 февраля 13 23:07 Manage.py -rw-r–r– 1 Пользовательский персонал 16 февраля 13 23:01 Требования. Подключите базу данных В этом разделе вы настраиваете подключение к базе данных для Django.

В своем каталоге проекта отредактируйте файл ComposeExample/futs.py.

Замените базы данных = … на следующее:

Databasases = {‘default’: {‘ingint’: ‘django.db.backends.postgresql’, ‘name’: ‘postgres’, ‘user’: ‘postgres’, ‘password’: ‘postgres’, ‘host’: ‘ ‘DB’, ‘Port’: 5432,}} Эти настройки определяются изображением Postgres Docker, указанным в Docker-compose.yml.

Сохраните и закройте файл.

Запустите команду Docker-Compose Up из каталога верхнего уровня для вашего проекта.

$ Docker-Compose

djangosample_db_1 актуально создает djangosample_web_1 … Создание djangosample_web_1 … сделано прикрепление к djangosample_db_1, djangosample_web_1 db_1 | Файлы, принадлежащие этой системе базы данных, будут принадлежать пользователю «Postgres». DB_1 | Этот пользователь также должен владеть серверным процессом. DB_1 | DB_1 | Кластер базы данных будет инициализирован с помощью локализации “en_us.utf8”. DB_1 | Кодирование базы данных по умолчанию соответственно было установлено на «UTF8». DB_1 | Конфигурация поиска текста по умолчанию будет установлена на «английский».

. .

web_1 | 30 июля 2020 г. – 18:35:38 web_1 | Django версия 3.0.8, используя настройки ‘composeExample.settings’ web_1 | Начало сервера разработки в http://0.0.0.0:8000/ web_1 | Выйдите из сервера с помощью Control-C. На этом этапе ваше приложение Django должно работать на порте 8000 на вашем хосте Docker. На Docker Desktop для Mac и Docker Desktop для Windows перейдите к http://localhost: 8000 В веб -браузере, чтобы увидеть страницу приветствия Django.

Джанго пример

Примечание:

На определенных платформах (Windows 10) вам может потребоваться отредактировать Alling_hosts Inside Sutings.py и добавить в список имя хоста Docker или IP. Для демонстрационных целей вы можете установить значение:

ALLED_HOSTS = [‘*’] Эта стоимость небезопасна для использования производства. Обратитесь к документации Django для получения дополнительной информации.

Список беговых контейнеров.

В другом окне терминала перечислите процессы выполнения Docker с командой контейнера Docker.

$ docker ps

Команда идентификатора идентификатора контейнера создал имена портов состояния def85f5f51 django_web “python3 Manage.py …” 10 минут назад до 9 минут 0,0.0.0.0:8000->8000/tcp django_web_1 678ce61c79cc postgres “Docker-entrypoint …” 20 минут назад Up Up Up Up. 9 минут 5432/TCP DJANGO_DB_1 Заключите службы и очистите, используя любой из этих методов:

Остановите приложение, набрав CTRL-C в той же оболочке, где вы его запустили:

Изящно останавливаясь … (снова нажмите Ctrl+C, чтобы принудительно) Killing test_web_1 … выполненное убийство test_db_1 … Или, для более элегантного отключения, переключитесь на другую оболочку и запустите Docker Compose Down с верхнего уровня вашего каталога проектов Django.

VMB в Mymachine в ~/песочница/django $ docker-compose down

Остановка django_web_1 … сделано остановка django_db_1 … сделано снятие django_web_1 … сделано снятие django_web_run_1 … сделано снятие django_db_1 … сделано снятие сети django_default

Оригинал: “https://dev.to/bekbrace/docker-and-containers-1m9e”