У меня есть следующий docker-compose:
version: "2"
services:
webserver:
image: orsolin/docker-php-5.3-apache
environment:
ALLOW_OVERRIDE: "true"
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTPS_PROXY}"
NO_PROXY: "${NO_PROXY}"
ports:
- "8000:80"
depends_on:
- db
volumes:
- ./app:/var/www/html/
db:
image: centos/mariadb-102-centos7
restart: always
volumes:
- ./mysql:/var/lib/mysql/:rw
environment:
MYSQL_ROOT_PASSWORD: *redacted*
MYSQL_USER: *redacted*
MYSQL_PASSWORD: *redacted*
MYSQL_DATABASE: *redacted*
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTPS_PROXY}"
NO_PROXY: "${NO_PROXY}"
ports:
- "8889:3306"
adminer:
image: adminer
restart: always
environment:
ADMINER_DEFAULT_DB_DRIVER: mysql
ADMINER_DEFAULT_DB_HOST: mariadb
ADMINER_DEFAULT_DB_NAME: adminer
ADMINER_DESIGN: nette
ADMINER_PLUGINS: tables-filter tinymce
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTPS_PROXY}"
NO_PROXY: "${NO_PROXY}"
ports:
- "8282:8080"
После запуска docker-compose up -d контейнер продолжает перезагружаться, и при запуске я вижу следующее: docker logs --tail 50 --follow --timestamps 01e2489d4526
2019-07-11T10:03:45.554517000Z 2019-07-11 10:03:45 140548938721472 [Note] Plugin 'FEEDBACK' is disabled.
2019-07-11T10:03:45.559329000Z 2019-07-11 10:03:45 140548938721472 [Note] Server socket created on IP: '::'.
2019-07-11T10:03:45.559835000Z 2019-07-11 10:03:45 140548938721472 [ERROR] Can't start server : Bind on unix socket: Permission denied
2019-07-11T10:03:45.560319000Z 2019-07-11 10:03:45 140548938721472 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
2019-07-11T10:03:45.560796000Z 2019-07-11 10:03:45 140548938721472 [ERROR] Aborting
И это docker ps
вывод: КОНТЕЙНЕР ID ИЗОБРАЖЕНИЕ
COMMAND CREATED STATUS PORTS NAMES
8d7e8d571a1b orsolin/docker-php-5.3-apache "apache2-foreground" 7 minutes ago Up 7 minutes 0.0.0.0:8000->80/tcp docker_webserver_1
5f0b1bb872c7 adminer "entrypoint.sh doc..." 7 minutes ago Up 7 minutes 0.0.0.0:8282->8080/tcp docker_adminer_1
01e2489d4526 centos/mariadb-102-centos7 "container-entrypo..." 7 minutes ago Restarting (1) 2 minutes ago docker_db_1
Как я могу это исправить, имея в виду, что мне нужно будет подключиться к контейнеру mariadb также из других контейнеров?
Спасибо
Вам нужно выключить контейнер, удалить ./mysql/mysql.sock
от хоста и запустите его снова. По какой-то причине там уже есть файл сокета, и его нужно удалить, чтобы служба правильно запустила.
Когда SELinux включен, тома ваших контейнеров должны быть помещены в подкаталоги /var/lib/docker/volumes
. Тома в вашем домашнем каталоге будут иметь контексты SELinux, которые не позволяют контейнерам Docker получать к ним доступ.
Ошибка очевидна, вам нужно либо остановить другую службу mysql, либо изменить порт в файле конфигурации:
[mysqld]
порт = 1234