@docker_ru

Страница 131 из 1375
тнн Itjunky
09.04.2017
14:11:16
Хочу с нуля, что бы лучше понять смысл каждой строки. Обычно при таком подходе, когда берёшь что-то готовое, половину конфига не понятно и никогда не становится понятно.

Не надо пытаться все за#уячить в один композ
Уже стопицот раз отвечал на это!!!

тнн Itjunky
09.04.2017
14:16:42
прочти Dockerfile готового образа., там быают нетривиальные штуки.
Возникает вопрос, как его вытащить из готовго образа

Google
тнн Itjunky
09.04.2017
14:17:19
https://hub.docker.com/_/mysql/ Смотрю сюда тут только pull команда

Anton
09.04.2017
14:17:20
Там всегда ссылка на гитхаб есть, на нем и читай

тнн Itjunky
09.04.2017
14:21:41
Вот опять, же,мускуль тут на дебиане, а мне надо на centos

Artem
09.04.2017
14:24:59
Это же приложение, зачем привязываться к дистрибутиву, контейнерам нужен только порт и имя контейнера, им без разницы чем он там обслуживается, для минимализма и отсутствия лишних зависимостей вообще модно на Alpine собирать.

тнн Itjunky
09.04.2017
14:27:05
Вот я и пытался собрать сам. А мне тут предлагают готовое брать уже в который раз.

Simak
09.04.2017
14:32:39
Спс, пока до этого не доюрался, мучаюсь с мускулем
Я думаю у тебя не получается, потому что ты не знаешь разницу между примонтировать папку и примонтировать раздел. Это очень большая разница. И если не ошибаюсь, если хост машина работает на центром/Федора надо подправить selinux для нормального монтирования.

тнн Itjunky
09.04.2017
14:35:38
Так всё монтируется же

селинукс обычно не даёт в принципе сделать что-то, а не сделать на половину =)

Вроде разделы и не монтирую. Делаю VOLUME

Simak
09.04.2017
14:38:14
Раздел, это тоже папка, но докер интерпретирует это по своему

Если бы вы монтировали именно раздел, то mysql у вас бы инициализировался еще при сборке

Google
Simak
09.04.2017
14:39:48
А получается, что он инициализируется у вас, и вы этот слой перекрываете монтируемым каталогом.

тнн Itjunky
09.04.2017
14:41:48
А получается, что он инициализируется у вас, и вы этот слой перекрываете монтируемым каталогом.
каталог /etc ни чем не перекрывается. но в нём косяк, конфиг там не тот

Artem
09.04.2017
14:43:34
Берешь официальный образ, копируешь оттуда etc/mysql себе на хост, правишь как нужно и потом закидываешь/маунтишь в образ

Anton
09.04.2017
14:43:50
каталог /etc ни чем не перекрывается. но в нём косяк, конфиг там не тот
Configuration without a cnf file Many configuration options can be passed as flags to mysqld.

Artem
09.04.2017
14:43:59
Должно работать в любом случае

тнн Itjunky
09.04.2017
14:44:02
а потом делаю кат конфига внутри докера, а там другое

Должно работать в любом случае
я тоже так думал, а оказалось, что всё не так

Simak
09.04.2017
14:44:53
Artem
09.04.2017
14:44:56
А ты какую директорию маунтишь

?

Anton
09.04.2017
14:46:12
Возникает вопрос, как его вытащить из готовго образа
не благодари https://github.com/docker-library/mysql/tree/master/8.0

Artem
09.04.2017
14:47:01
Он уже ознакомился)

Simak
09.04.2017
14:48:05
-v mysql:/var/lib/mysql так ты проиницилизируешь раздел. -v /opt/data:/var/lib/mysql это каталог, и если ты делаешь докер файл по типу FROM centos RUN yum update && yum install mysql -y CMD ["mysqld"] Это большая разница

https://blog.amartynov.ru/docker-mysql/

Вот так тебе будет легче наверное )

Egor
09.04.2017
15:53:39
общак, ты братух с какой зоны?
Кек, поцанята, а это точно чатик докера?

Igor
09.04.2017
17:55:36
тнн Itjunky
09.04.2017
18:32:55
-v mysql:/var/lib/mysql так ты проиницилизируешь раздел. -v /opt/data:/var/lib/mysql это каталог, и если ты делаешь докер файл по типу FROM centos RUN yum update && yum install mysql -y CMD ["mysqld"] Это большая разница
мне нафиг не нужны ключи командной строки!!! Я пишу докерфайл. И как маунтить вольюмы я знаю. Вот только разницы между твомими двумя строками я осбой не увидел. Чем отличается mysql от /opt/data? Где существует этот mysql?

Google
тнн Itjunky
09.04.2017
18:35:29
https://blog.amartynov.ru/docker-mysql/
Не поверишь, гуглом пользоваться умею и именно по этой статье и делал.

Simak
09.04.2017
18:36:19
Можно вопрос, ты вот объявил VOLUME в докер файле

а потом как ты создаешь контейнер?

через компис?

тнн Itjunky
09.04.2017
18:36:58
Нет, я в докер композе указал пачку вольюмов

тнн Itjunky
09.04.2017
18:38:40
Кстати, возник вопрос про VOLUME в Dockerfile. Это штука которая резервирует некий путь внутри контейнера, который потом, в композе или ключами при запуске я могу замонтировать с каталогом на хостовой системе?

А если не указывать его в Dockerfile, а сразу вольюмы монтировать, что изменится?

Simak
09.04.2017
18:39:47
вот в этом и есть разница между монтирование папок

и монтирование разделов

и время их объявления

фишка вот в чем

Simak
09.04.2017
18:40:55
что бы ты записал на этот вольюм что нибудь. Тебе надо вовремя его объявить.

К примеру если ты хочешь что бы у тебя какие то действия выполнились в онтейнере а потом записались на него. Тебе надо сделать так

RUN действие

VOLUME data

тнн Itjunky
09.04.2017
18:41:37
А если не указывать его в Dockerfile, а сразу вольюмы монтировать, что изменится?
У меня вот так вот работает тоже, но поведение не всегда одинаковое

Simak
09.04.2017
18:43:42
Я тебе уже где то писал выше. Если объявить допустим внутри контейнера /var/lib/mysql как раздел, то есть -v mysql:/var/lib/mysql то у тебя сразу примонтирется данная папка как раздел, и на нее будет нормально идти запись.

То есть проиницилизируется mysql к примеру сразу на него

Google
Simak
09.04.2017
18:44:11
Но!!! при условие, что данный раздел будет пустой при монтирование

А если ты примонтируешь как папку

То у тебя начало, выполнится действии иницилизации базы. Это один слой

Admin
ERROR: S client not available

Simak
09.04.2017
18:44:55
а потом данный слой перекроется монтирование папки с хоста

и все летит к ебеням. Так как примонтируется пустая папка

Так и при прописи в Dockerfile VOLUME

Допустим ты хочеть делать так

VOLUME /data RUN touch /data/test.txt

Короче это полное говно

так как VOLUME примонтироется позже

тебе надо объявлять вольюм так

RUN touch /data/test.txt VOLUME /data

В чем разница, сначало создастся файл, а потом проиницилизируется VOLUME и докер скопирует на него все файлы из слоя

Даа, не знаю, знаешь ли ты, но каждое действие в докер файле слой. Это очень важно как раз, что бы не затереть файлы

тнн Itjunky
09.04.2017
18:48:09
То у тебя начало, выполнится действии иницилизации базы. Это один слой
Да нет у меня такой проблемы вообще. Другая проблема есть, с конфигом, и я её описывал два раза

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

Mikhail
09.04.2017
18:50:25
А не проще ли создать тему на том же оверфлоу и обсудить сию проблему там?

тнн Itjunky
09.04.2017
18:51:29
Для этого надо получить повторяемый эффект и грамотно описать, при этом выкинув всё лишнее из докерфайла и композа

Я задал довольно простой вопрос про вольюм

Google
тнн Itjunky
09.04.2017
18:52:53
RUN touch /data/test.txt VOLUME /data
А куда потом денется файл test.txt, после того как поверх него будет смониторован каталог из хост системы?

Они магическим образом сольются воедино? Это как-то не по-линуксовому, ибо всегда то что маунтится, перекрывает то что было ранее в каталоге

V
09.04.2017
19:13:16
https://habrahabr.ru/company/hexlet/blog/248519/

Anton
09.04.2017
21:33:17
https://habrahabr.ru/company/hexlet/blog/248519/
Это не проблема если использовать докер рекомендованным путем - один процесс на один контейнер

Artem
09.04.2017
23:34:29
хм... не факт смотря что за процесс
Да хоть какой, если использовать докер как докер, а не vm, то при выпадении родительского процесса контейнер отвалится просто.

V
10.04.2017
04:18:23
Да хоть какой, если использовать докер как докер, а не vm, то при выпадении родительского процесса контейнер отвалится просто.
Контейнер отвалится да, важно чтобы родительский процесс имел 1 PID. Чтобы все корректно завершалось и не оставалось сирот

Anton
10.04.2017
08:29:31
Контейнер отвалится да, важно чтобы родительский процесс имел 1 PID. Чтобы все корректно завершалось и не оставалось сирот
Причем тут pid? если отвалится процесс указанный в cmd/entrypoint контейнер по любом упадет

Simak
10.04.2017
11:32:36
Парни, что то запутался немного. Объяснити, если я бду прописывать в разных docker-compose networks: default: Этого будет достаточно что бы все приложения смотрели в дефолтную сеть?

или все таки дописать еще к каждому приложению что то надо

и в офф документации описанно еще про driver: custom-driver-1

Страница 131 из 1375