Hier habe ich einen Docker-Container erstellt, der das mariadb
Image verwendet, und drei Volumes wie folgt erstellt.
docker-compose.yml
version: '2.0'
services:
mariadb:
image: mariadb:latest
restart: always
container_name: mariadb
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=testdb
ports:
- 3307:3306
volumes:
- ./database:/var/lib/mysql
- ./_conf/mariadb.cnf:/etc/mysql/my.cnf:ro
- ./logs:/var/log/mysql
Die ersten beiden Volumes funktionieren erfolgreich, aber ich kann keine Mariadb-Protokolldateien im logs
Ordner finden. Der logs
Ordner wird sowohl auf dem Host als auch auf dem Container (/ var / log / mysql) leer angezeigt. Ich denke, Host-Ordner überschreiben in Docker-Dateisystem.
Wenn ich dieses Volume ( ./logs:/var/log/mysql
) aus Docker-Compose entferne , werden Protokolldateien auf dem Container angezeigt.
Mein Plan ist es, /var/log/mysql/
Ordner auf lokalen Computer zu mounten .
Vielen Dank !
Debian
OS und Apparmor bereits deaktiviert.
chmod 777 /var/log/mysql
Ihren Host aus. Ich wette, Ihr Daemon wird ausgeführt, da dermysql
Benutzer keine Rechte hat, in dieses Verzeichnis auf Ihrem Host zu schreiben. Danach müssen Sie die MySQL-Benutzer-ID im Container finden, umchown
zu vermeiden, dass jeder Ihre Datenbankprotokolle liest und schreibt.