Artem
Читать документацию видимо никто никогда не пробует..
Artem
Жайык
Подскажите пжл запустил контейнер все заработало вышел с сервера контейнер удалилось в чем может быть причина
Artem
Смотря как запускал
Ilia
Всем привет)
Ilia
Подскажите стоит ли использвоать named volume для того чтобы держать там бд data dir
Yurij
Смотря как запускал
Смотря как выходил;)
Жайык
Жайык
Запускал docker compose up -d, потом ctrl+z, проверил все работает, если нет делал docker start, и вышел с удаленного сервера, и контейнер удалился
Vyacheslav
https://blog.amartynov.ru/docker-named-volumes/
Vyacheslav
Всем привет)
Vyacheslav
Подскажите стоит ли использвоать named volume для того чтобы держать там бд data dir
Vyacheslav
Вот так сделал, и данные не теряются, ни при удалении контейнера, ни при удалении образа mysql: image: mysql:5.7.20 expose: - "3306" volumes: - ./data/mysql:/docker-entrypoint-initdb.d - mysql:/var/lib/mysql - ./conf/mysql/my.cnf:/etc/mysql/conf.d/my.cnf restart: always env_file: - variables.env
Artem
Маунт с хоста например
Artem
Более надёжно чем волюм, а то в случае если файловая система докера поедет, как например бывает с aufs всякими, то и данные все тоже в трубу улетят
Aleksandr
Маунт с хоста например
это такой же маунт с хоста, только именованный и лежащий в /var/lib/docker
Artem
И подверженный тому риску который я описал выше
Oleg
Более надёжно чем волюм, а то в случае если файловая система докера поедет, как например бывает с aufs всякими, то и данные все тоже в трубу улетят
а что может произойти в /var/lib/docker/... с тз файловой системы, чего не может произойти в /home/... в случае если у волюма "driver": "local"?
Artem
например read/write error и зависание докер демона из-за бага сторадж драйвера
Artem
лечится только полным сносом /var/lib/docker
Artem
с папкой home такого не может произойти в принципе, а если маунт делать с директории которая монтируется с распределенной фс, то вообще мало чего с ним может произойти
Danila
Привет! Помогите нубу, пожалуйста. docker-compose.yml composer: image: "composer" volumes: - "./web/backend:/app" command: install Рут для композера локальный всегда должен быть прибинжен к /app в контейнере? Просто если я пытаюсь сделать - "./web/backend:/backend", то он ругается, что не может найти композер.жсон при исполнении install.
Artem
судя по докерфайлу
Artem
https://github.com/composer/docker/blob/731db8e23398470eac34ebeed8816362b54d5089/1.5/Dockerfile
Artem
WORKDIR /app
Artem
так что монтируй туда
Danila
Ага, спасибо.
Artem
либо можешь пересобрать контейнер на базе композера и указать другой воркдир, если принципиально
Danila
Нет, это не принципиально, я собирал самую примитивную композицию тупо чтобы тестеру отдать скрипт, а то он ругался и требовал докер-аппа :)
pavel
а в чем разница между links and depends_on
Artem
links фича которая уже давно депрекейтед и заменена docker network
Artem
а depends_on зависимость старта одного контейнера перед другим
Artem
вся эта и многая другая полезная информация есть в доке
pavel
спс
Anatoliy
Народ, а почему докер может выдавать Could not resolve host ? Сама машина адрес пингует, в хостах внутри контейнера тоже намертво записано куда обращаться. Что не так?
Aleksandr
Подробнее
Anatoliy
Хотя не, в /etc/hosts адреса нет( Не добавляется он
Anatoliy
В общем есть домен вида my.local.domain по адресу 192.168.8.8 На хост машине он пингуется и все норм. Если же пробовать обратиться к нему из контейнера - он его не видит
Anatoliy
Угу, а как сделать что бы работал?
Evgenii
Угу, а как сделать что бы работал?
https://docs.docker.com/engine/userguide/networking/default_network/configure-dns/ https://docs.docker.com/engine/userguide/networking/configure-dns/
Aleksandr
Хотя не, в /etc/hosts адреса нет( Не добавляется он
насколько я помню в hosts уже больше года не добавляется ничего.
Evgenii
Комрады, у меня вопрос про то, как у вы настраиваете права на замапленные volume. Есть nginx контейнер, сам nginx работает внутри под пользователем nginx(user nginx;). На хостовой машине сейчас сделаны права 777, поэтому всё работает. Как правильно (кошерно) выставить права (не 777) на хостовой машине, чтобы внутри контейнера у Nginx были права на чтение и запись?
Ilia
Мне кажется что тебе нужно просто примонтировтаь то-что ты хочешь защитить от записи в RO volume
E
Всем добрый день. Скажите, источник, самый простой, который заработает. Мне нужен php7-fpm который будет расшарен с сокетом в каталоге. Без nginx. Третий день гуглю, ничего нет без nginx. Все пробы заканчиваются ничем. Уже просто дико устал от отсутвия возможности сделать такой простой контейнер....
E
./docker-compose.yml php_fpm: build: ./php-fpm volumes: - /run/docker/sock:/sock # тут другие пути ./php-fpm/Dockerfile FROM php:7.1-fpm
Oleg
а зачем контейнеру докеровский сокет если не секрет?
E
Потому что nginx уже стоит, и хочется именно его использовать
Oleg
где-то был построчный мануал как дефолтный nginx задружить с дефортным fpm-контейнером
E
А не могли бы вы подсказать где его найти. Я уже отчаялся...
Oleg
nginx в контейнере?
E
нет, он стоит без контейнера
Oleg
whatever
E
whatever
не понял ответа...
Oleg
а php-код лежит на хосте?
E
да. Его я буду расшариванием папки использовать.
Oleg
Тогда думается так 1. - /run/docker/sock:/sock - нафиг не нужен это сокет для того чтобы пообщаться с демоном докера, с его апи
Oleg
version: '3' services: php: image: php:7-fpm # ... ports: - 9000:9000 volumes: - /path/to/php/code:/path/to/php/code # ...
Oleg
server { #.... root /path/to/php/code; index index.php index.html index.html; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_intercept_errors on; fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # ... }
Oleg
ключевое слово /path/to/php/code — оно должно быть везде одинаковым
Oleg
в данной конфигурации установленный на хосте nginx будет общаться с php-fpm в контейнере и ранать код из /path/to/php/code на локальном хосте
Oleg
секрет в том что папку с кодом надо смотнтировать в php-контейнер ровно в то же место в котором оно лежит на хост-машине
E
Спасибо большое. Через 10 минут попробую !
Oleg
общение будет идти по tcp-сокету на порту 9000
Oleg
если кровь-из-носа нужен именно unix-socket — надо соотв образом менять конфиги
Oleg
пути ессно нужны абсолютные
E
[emerg] host not found in upstream "php" Он апстрим не видит ( php:9000
E
в одной системе. На одной виртуальной машине. Виртувлизация у хостера.
E
Контейнер запустился
Oleg
ха
Oleg
это чтоб портиз контейнера на хост машину заэкспозился
Oleg
без этого гне взлетит