11/24/2021»»Wednesday

Download Postgresql Docker Image

Знакомство с Docker. Проверка работоспособности бэкапа

  1. What Is Docker
  2. Download Postgresql Docker Image Download
  3. Postgresql Docker Image Download

Очень хотелось немного познакомиться с замечательным инструментом для виртуализации - Docker. Раньше, когда его не было, бал правила связка Vagrant + VirtualBox. Но сейчас в моде Docker, я считаю, заслуженно. В этом посте я попытаюсь научиться использовать Docker для проверки работоспособности бэкапов. В качестве подопытных выбрал Django и PostgreSQL.

Docker Icon #51433Download Docker Icon,GitHub - gocd-contrib/docker-elastic-agents: Docker-based elastic image for free. Jun 08, 2016 Step 2: Download postgres docker image: docker pull postgres:latest. Step 3: Start docker container in detached mode and persist data on postgres image by creating a volume and binding it to a destination. Relational database services for MySQL, PostgreSQL, and SQL server. To download a signed container image, you should have Docker installed and use the. Postgresql docker and postgres: using passwordfile. Note: the description for this image is longer than the Hub length limit of 25000, so has been.

В моем понимании, Docker - это средство виртуализации, в отличие от Vagrant, который является менеджером средств виртуализации. Подробнее о различиях между Vagrant+VirtualBox и Docker здесь.

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

Я буду работать с Docker под убунтой, потому что при работе в Windows с Docker могут быть проблемы, связанные с кастомными файерволлами (например Zone Alarm у меня иногда блокировал Docker'у создание контейнера). Начнем с установки Docker CE:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg sudo apt-key add -

sudo apt-get update && sudo apt-get install docker-ce

sudo docker run hello-world

Теперь, когда Docker установлен, можно создать базовое Django - приложение. Наш первый шаг - это запустить Django проект из-под Docker. Создадим Django проект:

django-admin startproject djangotest

Затем, в корень проекта необходимо добавить Dockerfile, который будет описывать изображение (image):

Добавим файл зависимостей requirements.txt следующего содержания:

Images

Теперь можно создать наш image, находясь в корне проекта djangotest:

Как видно, изображение djangotest появилось в списке, это хорошо, теперь можно поднять контейнер (находясь в корневой папке проекта):

Если все ок, то теперь можно перейти на localhost:4000 и увидеть работающий django проект:

А если что-то пошло не так, и Вы хотите начать все заново, то эта команда удалит все изображения и контейнеры:

Если же все ок, то перейдем к следующему шагу - создание простой модели и добавление ее в админку:

На стр. 34 добавил books в INSTALLED_APPS, а также поменял на стр. 44 настройки БД на PostreSQL.

Postgresql

Следующий шаг - запустить в двух контейнерах связку Django + PostgreSQL и создать несколько книг через админку. Для этого понадобится docker-compose, эта утилита позволит нам создать сразу два контейнера: один для Django, другой для PostgreSQL. Установим docker-compose:

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

Заметьте, что файл docker-compose.yml зависит от Dockerfile через эту строчку (15 строка):

А также, на строке 9 задается то, что папка хоста /home/username/backup/ будет 'проброшена' в папку /tmp в контейнер djangotest_web_1. То есть папка /home/username/backup/ будет доступна внутри контейнера.

Также, последние две строчки в Dockerfile можно закомментировать, потому что эти действия теперь описаны в файле docker-compose.yml:

sudo docker-compose build

sudo docker-compose up

По идее, все должно подняться, но если что-то не так, то можно сначала посмотреть список контейнеров:

sudo docker exec -it <container name> sh

В результате будет создано и запущено два контейнера: djnagotest_web_1 для Djnago и djangotest_db_1 для PostgreSQL. Далее, применим миграции:

sudo docker exec -it djangotest_web_1 sh -c 'python manage.py createsuperuser'

Теперь сделаем бэкап базы, выполнив команду в соответствующем контейнере:

sudo docker exec -it djangotest_db_1 sh -c 'pg_dump -U postgres djangotest > djangotest_db.bak'

В результате, в контейнере djangotest_db_1 в папке / (в корневой) должен появиться файл бэкапа djangotest_db.bak. Теперь скопирую файл бэкапа на хост. Команда для копирования:

docker cp <containerId>:/file/path/within/container /host/path/target

sudo docker cp djangotest_db_1:/djangotest_db.bak /home/username/backup/djangotest_db.bak

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

И, теперь, восстановим бэкап, используя ранее сохраненный файл:

sudo docker exec -ti djangotest_db_1 sh -c 'cat /tmp/djangotest_db.bak psql djangotest -U djangotest'

Выводы

Надеюсь, я смог на базовом уровне разобраться с docker, Dockerfile, docker-compose, также научился проверять работоспособность бэкапов.

Hub
Если вам понравился пост, можете поделиться им в соцсетях:

PostgreSQL Downloads

PostgreSQL is available for download as ready-to-use packages or installers forvarious platforms, as well as a source code archive if you want to build ityourself.

Packages and Installers

Select your operating system family:

Linux
macOS
Windows
BSD
SolarisDownload Postgresql Docker ImageDocker

Select your Linux distribution:

Debian
Red Hat/Rocky/CentOS
SUSE
Ubuntu
Other Linux

Select your BSD operating system:

OpenBSD

What Is Docker

FreeBSD
NetBSD

Source code

The source code can be found in the main file browseror you can access the source control repository directlyat git.postgresql.org.Instructions for building from source can be found in thedocumentation.

Beta/RC Releases and development snapshots (unstable)

There are source code and binary packagesof beta and release candidates, and of the current development code availablefor testing and evaluation of new features. Note that these builds shouldbe used for testing purposes only, and not for production systems.

3rd party distributions

Machine Learning and Data Visualization with PostgreSQL

Download 2UDA for Windows, macOS, and Linux - certified by 2ndQuadrant for all supported versions of PostgreSQL.

2ndQuadrant Unified Data Analytics (2UDA) is a data analytics application suite that unifies databases, machine learning, data mining, and visualization. The application can be installed using a user-friendly, one-click desktop installer. 2UDA builds on the capabilities of Orange, an open source machine learning and data visualization tool, by integrating it with the PostgreSQL database.

Ready to run stacks

'LAPP', 'MAPP' and 'WAPP' (Linux/Mac/Windows + Apache + PHP + PostgreSQL)stacks are available fromBitNami.

Additional Software

Download Postgresql Docker Image Download

Software Catalogue

There is much software available that is not bundled with PostgreSQL. The SoftwareCatalogue offers a listing of many commercial and Open Source applications, interfaces and extensions to PostgreSQLthat you may find useful.

If you wish to have your product listed in the catalogue, please fill out this form.

File Browser

Postgresql Docker Image Download

You can download most of the software we publish from a mirror site using our File Browser.

Most Viewed Posts