php_network_getaddresses: ошибка getaddrinfo в администраторе Docker
У меня проблема с доступом к администратору в моем контейнере док-станции с приложением laravel 5/mysql. Я получил ошибку:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name does not resolve
Мой docker-compose.yml:
version: '3'
services:
votes_app:
build:
context: ./web
dockerfile: Dockerfile.yml
container_name: votes_app_container
environment:
- APACHE_RUN_USER=#1000
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
ports:
- 8081:80
working_dir: ${APP_PTH_CONTAINER}
votes_db:
image: mysql:5.6.41
container_name: votes_db_container
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1
volumes:
- ${DB_PATH_HOST}:/var/lib/mysql
votes_adminer:
image: adminer
container_name: votes_adminer_container
restart: always
ports:
- 8082:8080
links:
- votes_db
votes_composer:
image: composer:1.6
container_name: votes_composer_container
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
working_dir: ${APP_PTH_CONTAINER}
command: composer install --ignore-platform-reqs
Я получил разные порты для приложения и контейнера БД.
Здесь https://hub.docker.com/_/adminer/ я нашел:
Использование с внешним сервером Вы можете указать хост по умолчанию с помощью переменной среды ADMINER_DEFAULT_SERVER. Это полезно, если вы подключаетесь к внешнему серверу или к док-контейнеру с именем, отличным от базы данных по умолчанию.
docker run -p 8080:8080 -e ADMINER_DEFAULT_SERVER=mysql adminer
В консоли моего приложения я запускаю команду
$ docker run -p 8089:8080 -e ADMINER_DEFAULT_SERVER=votes_db adminer
с неиспользованным портом в моих приложениях, и эта команда все равно не была успешной, так как я получил ту же ошибку при попытке войти в систему администратора https://imgur.com/a/4HCdC1W.
Какой правильный путь?
ИЗМЕНЕННЫЙ БЛОК № 2:
В моем docker-compose.yml:
version: '3'
services:
votes_app:
build:
context: ./web
dockerfile: Dockerfile.yml
container_name: votes_app_container
environment:
- APACHE_RUN_USER=#1000
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
ports:
- 8081:80
working_dir: ${APP_PTH_CONTAINER}
db:
image: mysql:5.6.41
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1
volumes:
- ${DB_PATH_HOST}:/var/lib/mysql
adminer:
image: adminer
restart: always
ports:
- 8082:8080
links:
- db
votes_composer:
image: composer:1.6
container_name: votes_composer_container
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
working_dir: ${APP_PTH_CONTAINER}
command: composer install --ignore-platform-reqs
Я перестроил приложение, но мне не удалось войти в администратор: https://imgur.com/a/JWVGfBA
Я запускаю в консоли моей ОС, указывая на другой неиспользуемый порт 8089:
$ docker run -p 8089:8080 -e ADMINER_DEFAULT_SERVER=db adminer
PHP 7.2.11 Development Server started at Thu Nov 1 07:00:46 2018
[Thu Nov 1 07:01:11 2018] ::ffff:172.17.0.1:34048 [200]: /
[Thu Nov 1 07:01:20 2018] ::ffff:172.17.0.1:34052 [302]: /
[Thu Nov 1 07:01:21 2018] ::ffff:172.17.0.1:34060 [403]: /?server=db&username=root
Но снова ошибка входа в систему для администратора на порт 8089, но сообщение об ошибке было другим:
https://imgur.com/a/a8qM4bt
Что случилось?
Модифицированный блок № 3:
Я полагаю, да, так как после того, как я перестроил контейнер, я вошел в поле и увидел "root" в выводе консоли:
$ docker-compose exec votes_app bash
[email protected]:/var/www/html# ls -la
total 1063
drwxrwxrwx 1 root root 4096 Oct 27 12:01 .
drwxr-xr-x 1 root root 4096 Oct 16 00:11 ..
-rwxrwxrwx 1 root root 234 Oct 13 07:15 .editorconfig
-rwxrwxrwx 1 root root 1029 Oct 31 06:10 .env
-rwxrwxrwx 1 root root 651 Oct 13 07:15 .env.example
drwxrwxrwx 1 root root 4096 Nov 1 11:10 .git
-rwxrwxrwx 1 root root 111 Oct 13 07:15 .gitattributes
-rwxrwxrwx 1 root root 294 Oct 13 07:15 .gitignore
-rwxrwxrwx 1 root root 4356 Oct 13 07:15 1.txt
drwxrwxrwx 1 root root 0 Oct 13 07:15 __DOCS
drwxrwxrwx 1 root root 0 Oct 13 07:15 __SQL
drwxrwxrwx 1 root root 4096 Oct 13 07:15 app
-rwxrwxrwx 1 root root 1686 Oct 13 07:15 artisan
drwxrwxrwx 1 root root 0 Oct 13 07:15 bootstrap
-rwxrwxrwx 1 root root 2408 Oct 13 07:15 composer.json
-rwxrwxrwx 1 root root 200799 Oct 13 07:15 composer.lock
drwxrwxrwx 1 root root 4096 Oct 13 07:15 config
drwxrwxrwx 1 root root 4096 Oct 13 07:15 database
-rwxrwxrwx 1 root root 52218 Oct 17 05:25 db_1_err.txt
-rwxrwxrwx 1 root root 482562 Oct 13 07:15 package-lock.json
-rwxrwxrwx 1 root root 1168 Oct 13 07:15 package.json
-rwxrwxrwx 1 root root 1246 Oct 13 07:15 phpunit.xml
drwxrwxrwx 1 root root 4096 Oct 13 07:15 public
-rwxrwxrwx 1 root root 66 Oct 13 07:15 readme.txt
drwxrwxrwx 1 root root 0 Oct 13 07:15 resources
drwxrwxrwx 1 root root 4096 Oct 13 07:15 routes
-rwxrwxrwx 1 root root 563 Oct 13 07:15 server.php
drwxrwxrwx 1 root root 4096 Oct 13 07:15 storage
drwxrwxrwx 1 root root 0 Oct 13 07:15 tests
drwxrwxrwx 1 root root 8192 Nov 1 13:05 vendor
-rwxrwxrwx 1 root root 1439 Oct 13 07:15 webpack.mix.js
-rwxrwxrwx 1 root root 261143 Oct 13 07:15 yarn.lock
[email protected]:/var/www/html# echo $USER
[email protected]:/var/www/html# uname -a
Linux a4aa907373f5 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 GNU/Linux
Это может быть проблема в любом случае?
Модифицированный блок № 4
Я переделал этот докер, я установил имена контейнеров по умолчанию (я полагаю, это вызывает некоторую путаницу) и я установил изображение: composer: 1.8 последняя версия. Итак, в моем docker-compose.yml:
version: '3.1'
services:
web:
build:
context: ./web
dockerfile: Dockerfile.yml
environment:
- APACHE_RUN_USER=#1000
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
ports:
- 8081:80
working_dir: ${APP_PTH_CONTAINER}
db:
image: mysql:5.6.41
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1
volumes:
- ${DB_PATH_HOST}:/var/lib/mysql
adminer:
image: adminer
restart: always
ports:
- 8082:8080
links:
- db
composer:
image: composer:1.8
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
working_dir: ${APP_PTH_CONTAINER}
command: composer install --ignore-platform-reqs
и в web/Dockerfile.yml:
FROM php:7.2-apache
RUN apt-get update -y && apt-get install -y libpng-dev nano
RUN docker-php-ext-install \
pdo_mysql \
&& a2enmod \
rewrite
Но в любом случае после перестройки проекта и подключения к администратору с URL-адресом http://127.0.0.1:8082 я получил ошибку:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Try again
PS: у меня есть другой laravel 5.0/php: 5.6/image: composer: 1.6/mcrypt установил проект docker на тот же локальный сервер моего ноутбука, который работает нормально для меня, и я могу войти в администратор и войти в db из этого приложения. Этот проект Docker имеет файлы:
докер-compose.yml:
version: '3.1'
services:
web:
build:
context: ./web
dockerfile: Dockerfile.yml
environment:
- APACHE_RUN_USER=#1000
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
ports:
- 8085:80
working_dir: ${APP_PTH_CONTAINER}
db:
image: mysql:5.5.62
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1
volumes:
- ${DB_PATH_HOST}:/var/lib/mysql
adminer:
image: adminer
restart: always
ports:
- 8086:8080
links:
- db
composer:
image: composer:1.6
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
working_dir: ${APP_PTH_CONTAINER}
command: composer install --ignore-platform-reqs
и Dockerfile.yml:
FROM php:5.6-apache
RUN apt-get update -y && apt-get install -y libpng-dev nano libmcrypt-dev
RUN docker-php-ext-install \
pdo_mysql \
mcrypt \
&& a2enmod \
rewrite
Является ли эта проблема специфичной для php 7.2 (например, некоторые пакеты отсутствуют?)
ИЗМЕНЕННЫЙ БЛОК № 5: с определенным:
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8082:8080
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: 1
Запуск http://127.0.0.1:8082/ Я получил ошибку в браузере:
This site cant be reached The webpage at http://127.0.0.1:8082/ might be temporarily down or it may have moved permanently to a new web address.
ERR_SOCKET_NOT_CONNECTED
При попытке URL приложения http://127.0.0.1:8081/public/ я получил ошибку:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
Модифицированный блок № 6: я переделал с phpmyadmin в docker-compose.yml:
version: '3.1'
services:
# docker run -p 8089:8080 -e ADMINER_DEFAULT_SERVER=db adminer
web:
# env_file:
# - ./mysql.env
build:
context: ./web
dockerfile: Dockerfile.yml
environment:
- APACHE_RUN_USER=#1000
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
ports:
- 8081:80
working_dir: ${APP_PTH_CONTAINER}
db:
image: mysql:5.6.41
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1
volumes:
- ${DB_PATH_HOST}:/var/lib/mysql
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8082:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: 1
composer:
image: composer:1.8
volumes:
- ${APP_PATH_HOST}:${APP_PTH_CONTAINER}
working_dir: ${APP_PTH_CONTAINER}
command: composer install --ignore-platform-reqs
но пытается войти в phpMyAdmin на
http://127.0.0.1:8082
Я получил ту же ошибку: https://imgur.com/a/cGeudI6
Также у меня есть порты:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
471de34926b9 phpmyadmin/phpmyadmin "/run.sh supervisord…" 41 minutes ago Up 41 minutes 9000/tcp, 0.0.0.0:8082->80/tcp votes_docker_phpmyadmin_1
226fcdbeeb25 mysql:5.6.41 "docker-entrypoint.s…" 41 minutes ago Restarting (1) 49 seconds ago votes_docker_db_1
1cb1efb10561 votes_docker_web "docker-php-entrypoi…" 41 minutes ago Up 41 minutes 0.0.0.0:8081->80/tcp votes_docker_web_1
d6718cd16256 adminer "entrypoint.sh docke…" 13 hours ago Up About an hour 0.0.0.0:8088->8080/tcp ads_docker_adminer_1
1928a54e1d66 mysql:5.5.62 "docker-entrypoint.s…" 13 hours ago Up About an hour 3306/tcp ads_docker_db_1
e43b2a1e9cc7 adminer "entrypoint.sh docke…" 6 days ago Up About an hour 0.0.0.0:8086->8080/tcp youtubeapi_demo_adminer_1
47a034fca5a2 mysql:5.5.62 "docker-entrypoint.s…" 6 days ago Up About an hour 3306/tcp youtubeapi_demo_db_1
3dcc1a4ce8f0 adminer "entrypoint.sh docke…" 6 weeks ago Up About an hour 0.0.0.0:8083->8080/tcp lprods_adminer_container
933d9fffaf76 postgres:9.6.10-alpine "docker-entrypoint.s…" 6 weeks ago Up About an hour 0.0.0.0:5433->5432/tcp lprods_db_container
МОДИФИЦИРОВАННЫЙ БЛОК № 7 Я не уверен, какую отладочную информацию я могу предоставить, но, похоже, в журнале есть предупреждение. Они критичны? Какую дополнительную информацию по отладке я могу предоставить?
[email protected]:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ docker-compose up -d --build
Creating network "votes_docker_default" with the default driver
Building web
Step 1/3 : FROM php:7.2-apache
---> cf1a377ba77f
Step 2/3 : RUN apt-get update -y && apt-get install -y libpng-dev nano
---> Using cache
---> 2c4bce73e8cc
Step 3/3 : RUN docker-php-ext-install pdo_mysql && a2enmod rewrite
---> Using cache
---> 241c9bf59ac0
Successfully built 241c9bf59ac0
Successfully tagged votes_docker_web:latest
Creating votes_docker_composer_1 ... done
Creating votes_docker_web_1 ... done
Creating votes_docker_db_1 ... done
Creating votes_docker_phpmyadmin_1 ... done
[email protected]:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ clear
[email protected]:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ docker logs --tail=20 votes_docker_web_1
AH00558: apache2: Could not reliably determine the server fully qualified domain name, using 172.20.0.4. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server fully qualified domain name, using 172.20.0.4. Set the 'ServerName' directive globally to suppress this message
[Wed Dec 26 12:26:34.113194 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.11 configured -- resuming normal operations
[Wed Dec 26 12:26:34.113247 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
[email protected]:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ docker logs --tail=20 votes_docker_db_1
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_CMPMEM'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_CMP_RESET'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_CMP'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_LOCK_WAITS'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_LOCKS'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'INNODB_TRX'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'BLACKHOLE'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'ARCHIVE'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'MRG_MYISAM'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'MyISAM'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'MEMORY'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'CSV'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'sha256_password'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'mysql_old_password'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'mysql_native_password'
2018-12-26 12:26:43 1 [Note] Shutting down plugin 'binlog'
2018-12-26 12:26:43 1 [Note] mysqld: Shutdown complete
[email protected]:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ docker logs --tail=20 votes_docker_composer_1
> @php artisan package:discover
Discovered Package: aloha/twilio
Discovered Package: barryvdh/laravel-debugbar
Discovered Package: beyondcode/laravel-dump-server
Discovered Package: cviebrock/eloquent-sluggable
Discovered Package: davejamesmiller/laravel-breadcrumbs
Discovered Package: fideloper/proxy
Discovered Package: intervention/image
Discovered Package: itsgoingd/clockwork
Discovered Package: jrean/laravel-user-verification
Discovered Package: laravel/tinker
Discovered Package: laravelcollective/html
Discovered Package: mews/captcha
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Discovered Package: proengsoft/laravel-jsvalidation
Discovered Package: rap2hpoutre/laravel-log-viewer
Discovered Package: themsaid/laravel-mail-preview
Discovered Package: yajra/laravel-datatables-oracle
Package manifest generated successfully.
[email protected]:/mnt/_work_sdb8/wwwroot/lar/DockerApps/votes_docker$ docker logs --tail=20 votes_docker_phpmyadmin_1
phpMyAdmin not found in /var/www/html - copying now...
Complete! phpMyAdmin has been successfully copied to /var/www/html
/usr/lib/python2.7/site-packages/supervisor/options.py:461: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory);
you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
'Supervisord is running as root and it is searching '
2018-12-26 12:26:35,973 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to av
oid this message.
2018-12-26 12:26:35,973 INFO Included extra file "/etc/supervisor.d/nginx.ini" during parsing
2018-12-26 12:26:35,973 INFO Included extra file "/etc/supervisor.d/php.ini" during parsing
2018-12-26 12:26:35,984 INFO RPC interface 'supervisor' initialized
2018-12-26 12:26:35,984 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2018-12-26 12:26:35,984 INFO supervisord started with pid 1
2018-12-26 12:26:36,986 INFO spawned: 'php-fpm' with pid 23
2018-12-26 12:26:36,988 INFO spawned: 'nginx' with pid 24
[26-Dec-2018 12:26:37] NOTICE: fpm is running, pid 23
[26-Dec-2018 12:26:37] NOTICE: ready to handle connections
2018-12-26 12:26:38,094 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-12-26 12:26:38,095 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Что случилось?
Спасибо!
Ответы
Ответ 1
Попробуй с phpMyAdmin :)
version: '3.2'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: myUserPass
MYSQL_DATABASE: mydb
MYSQL_USER: myUser
MYSQL_PASSWORD: myUser
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8088:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: myUserPass
Ответ 2
Проблема с вашей настройкой из-за переменной среды DB_PATH_HOST
. У вас все отлично настроено в вашем файле. но перед запуском docker-compose вы должны определить переменную окружения DB_PATH_HOST
. Поскольку переменная окружения не определена, выдается ошибка. Смотрите это для более подробной информации о переменных окружения и их приоритете в Docker.
Итак, что вы должны были сделать, перед запуском docker-контейнера вы должны были определить переменную среды, либо определив ее в файле compose, либо экспортировав ее в оболочку как переменную оболочки перед запуском docker-compose, или должны были использовать файл env или с помощью инструкции ENV в докерфайле. (Это все возможные способы определения переменных среды, и я перечислил все из них, что метод, который стоит первым, имеет приоритет. Обратитесь к нему для получения дополнительной информации).
Поэтому правильный файл docker-compose.yml должен выглядеть следующим образом.
version: '3.2'
services:
db:
image: mysql:5.6.41
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1
DB_PATH_HOST: /tmp/mysql #this is the host location where mysql data will be stored.
volumes:
- ${DB_PATH_HOST}:/var/lib/mysql
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8082:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: 1
Переходя к следующему пункту, я вижу, что из ваших обсуждений вы пришли к выводу, что удаление томов из контейнера db решило вашу проблему. Но на самом деле нет. Как?
Сначала позвольте мне объяснить, почему объем используется здесь. Данные, сгенерированные моим MySQL должны храниться где-то. Docker по умолчанию запускает контейнеры в непостоянном режиме, что означает, что все данные, сгенерированные запущенным соединителем докеров, будут удалены при сбое/уничтожении этого контейнера. Поэтому для сохранения (сохранения/сохранения) данных мы используем тома. В докере используются разные типы томов. Я рекомендую вам прочитать документацию по хранилищу Docker для более подробной информации. Используемый здесь тип тома - это привязка, которая заключается в следующем: вы привязываете каталог хоста к каталогу докера, и докер сохраняет все данные непосредственно на хост-машине, так что даже если контейнер докера сброшен, данные все еще сохраняются.
Следовательно, если вы не используете тома в mysql, все изменения в БД, независимо от того, что вы делаете, будут потеряны при остановке контейнера.
Бонусные баллы:
- По умолчанию контейнер MySQL не разрешает удаленные подключения. Так что если вы хотите получить доступ к MySQL из любого места, кроме phpmyadmin. Вы должны разрешить удаленные подключения.
- Так как здесь мы сохраняем данные, пароль root будет установлен только при первом запуске контейнера mysqll. В следующий раз переменная среды корневого пароля будет игнорироваться.
- Если вы входите в Docker-контейнеры, используя в основном docker exec, вы можете видеть, что вы являетесь пользователем root. Это потому, что всякий раз, когда вы создаете Docker-контейнер с Dockerfile, используя либо
docker build
Docker, либо docker build
docker-compose build
если вы не укажете в Dockerfile
инструкцию по созданию и использованию нового пользователя, Docker будет запускать все как пользователь root. - Теперь всякий раз, когда вы запускаете вышеуказанный файл compose. Вы можете видеть, что владение данными MySQL будет изменено. Это потому, что всякий раз, когда вы монтируете каталог хоста в Docker, Docker меняет разрешение файла в соответствии с пользователем и группой в соответствии с определением Dockerile контейнера. Здесь mysql определил пользователя и группу с именем
mysql
а uid и gid - 999. следовательно /tmp/mysql будет иметь 999: 999 в качестве владельца. Если эти идентификаторы сопоставлены с любой другой учетной записью пользователя в вашей системе, вы будете видеть эти имена вместо идентификаторов всякий раз, когда выполняете команду ls -al на хост-компьютере. Если идентификатор не отображается, то вы увидите идентификатор непосредственно. - Я использовал /tmp/mysql в качестве каталога данных mysql для примера. Pleae не использует то же самое, поскольку данные в /tmp будут удаляться при каждом перезапуске системы.
Ответ 3
Вы можете увидеть об этом в https://hub.docker.com/_/adminer/
пример
version: '3.1'
services:
adminer:
image: adminer
restart: always
ports:
- 8080:8080
db:
image: mysql:5.6
restart: always
environment:
MYSQL_ROOT_PASSWORD: example