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

Anton
09.04.2017
14:11:47

тнн Itjunky
09.04.2017
14:16:42

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 у вас бы инициализировался еще при сборке

Anton
09.04.2017
14:39:08

Google

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

тнн Itjunky
09.04.2017
14:41:48

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

Anton
09.04.2017
14:43:50

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

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

Google

тнн Itjunky
09.04.2017
18:35:29

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

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

Simak
09.04.2017
18:38:21

тнн 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

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

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

Simak
09.04.2017
21:29:23

Anton
09.04.2017
21:33:17

V
09.04.2017
21:33:54

Artem
09.04.2017
23:34:29

V
10.04.2017
04:18:23

Anton
10.04.2017
08:29:31

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