Size: a a a

Docker — русскоговорящее сообщество

2020 July 29

АС

Артур Семенов... in Docker — русскоговорящее сообщество
неужели нельзя без подсетей и тд
источник

ЕХ

Егор Хильченко... in Docker — русскоговорящее сообщество
Rince Wind
говорят база в контейнере не оч идея
врать не буду, не делал так
а почему плохая?
источник

P

Priestone in Docker — русскоговорящее сообщество
Егор Хильченко
врать не буду, не делал так
а почему плохая?
Контейнер может быть уничтожен и пересоздан, а данные он откуда возьмет?
источник

DN

Denis Nest in Docker — русскоговорящее сообщество
Артур Семенов
есть линукс сервер, на нем стоит база
и есть ряд контейнеров, которые ее используют
как к ней обращаться не использую белый айпи сервера а использую локалхост?
Самое простое, что ты можешь сделать: запустить контейнер с флагом --network host (network_mode: 'host’).
Однако, я считаю, что стоит поднять контейнер с базой и контейнер с приложением в рамках одной сети. Корректно настроить монтирование в контейнер каталога хоста, где БД будет хранить данные. И подключать одно к другому по именам контейнеров.
источник

ЕП

Евгений Павлов... in Docker — русскоговорящее сообщество
Priestone
Контейнер может быть уничтожен и пересоздан, а данные он откуда возьмет?
-v ?
источник

АС

Артур Семенов... in Docker — русскоговорящее сообщество
Denis Nest
Самое простое, что ты можешь сделать: запустить контейнер с флагом --network host (network_mode: 'host’).
Однако, я считаю, что стоит поднять контейнер с базой и контейнер с приложением в рамках одной сети. Корректно настроить монтирование в контейнер каталога хоста, где БД будет хранить данные. И подключать одно к другому по именам контейнеров.
--network host, что указывать за место host? или 1:1 использовать этот флаг?
источник

DN

Denis Nest in Docker — русскоговорящее сообщество
Priestone
Контейнер может быть уничтожен и пересоздан, а данные он откуда возьмет?
А если подробнее, то кладешь в контейнере файлы базы в какое-то место, монтируешь это хозяйство к хосту (-v) да. И база хранится не в контейнере, а на хосте.
источник

DN

Denis Nest in Docker — русскоговорящее сообщество
Артур Семенов
--network host, что указывать за место host? или 1:1 использовать этот флаг?
источник

DN

Denis Nest in Docker — русскоговорящее сообщество
Артур Семенов
--network host, что указывать за место host? или 1:1 использовать этот флаг?
Но это не продакшн-решение, кмк.
источник

АС

Артур Семенов... in Docker — русскоговорящее сообщество
Denis Nest
А если подробнее, то кладешь в контейнере файлы базы в какое-то место, монтируешь это хозяйство к хосту (-v) да. И база хранится не в контейнере, а на хосте.
и через какой адрес внутри докера его использовать ? через localhost:1234, 127.0.0.1:1234, 0.0.0.0:1234 ?
источник

АС

Артур Семенов... in Docker — русскоговорящее сообщество
в коде самого приложения
источник

P

Priestone in Docker — русскоговорящее сообщество
Denis Nest
А если подробнее, то кладешь в контейнере файлы базы в какое-то место, монтируешь это хозяйство к хосту (-v) да. И база хранится не в контейнере, а на хосте.
Только чуть в другом порядке. Монтируешь в контейнер волюм с хоста и потом туда кладёшь базу, не?
источник

DN

Denis Nest in Docker — русскоговорящее сообщество
Артур Семенов
и через какой адрес внутри докера его использовать ? через localhost:1234, 127.0.0.1:1234, 0.0.0.0:1234 ?
127.0.0.1 адрес обратной связи (также известный как localhost) (если полюбопытствуешь в /etc/hosts все станет прозрачнее)
0.0.0.0 - исходный адрес для этого хоста в этой сети.
Так что в итоге, для твоего кейса это синонимы.
источник

DN

Denis Nest in Docker — русскоговорящее сообщество
Priestone
Только чуть в другом порядке. Монтируешь в контейнер волюм с хоста и потом туда кладёшь базу, не?
Для понимания:
/var/lib/postgres/data - каталог на хосте
/var/lib/postgres/data/base - каталог в контейнере

docker run -d -v /var/lib/postgres/data:/var/lib/postgres/data/base postgres:13
источник

DN

Denis Nest in Docker — русскоговорящее сообщество
Разумеется при настройке базы нужно указать точно, где хранить данные в контейнере.
источник

P

Priestone in Docker — русскоговорящее сообщество
Denis Nest
Для понимания:
/var/lib/postgres/data - каталог на хосте
/var/lib/postgres/data/base - каталог в контейнере

docker run -d -v /var/lib/postgres/data:/var/lib/postgres/data/base postgres:13
Вот и я про то же.
источник

МИ

Макс Ильин in Docker — русскоговорящее сообщество
Под CentOS8 есть какие репозитории с docker/docker-compose ? На оф сайте предлагают решение:

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
источник

P

Priestone in Docker — русскоговорящее сообщество
Denis Nest
Разумеется при настройке базы нужно указать точно, где хранить данные в контейнере.
Либо в качестве точки монтирования указать стандартное расположение каталога баз для выбранной СУБД
источник

DN

Denis Nest in Docker — русскоговорящее сообщество
Priestone
Либо в качестве точки монтирования указать стандартное расположение каталога баз для выбранной СУБД
Плохая практика. Привычка останется, потом будет маленькая головоломка: “какого черта база не хранится”. Если есть возможность указать переменную, надо ее указать, а не оставлять это на откуп дефолтного значения.
источник

DN

Denis Nest in Docker — русскоговорящее сообщество
Представим, что мы так зафигачиваем монгу?! Там пацаны вообще не парятся по поводу обратной совместимости, и могут поменять стандартное расположение.
источник