ここでは、mariadbイメージを使用するDockerコンテナーを作成し、以下のように3つのボリュームを作成しました。
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
最初の2つのボリュームは正常に機能しますが、mariadb-logsファイルをlogsフォルダーに見つけることができません。logsホストとコンテナー(/ var / log / mysql)でフォルダーが空白で表示されるようです。ホストフォルダーがDockerファイルシステムにオーバーライドされると思います。
./logs:/var/log/mysqldocker-composeからこのボリューム()を削除すると、コンテナーにログファイルが表示されます。
私の計画は、/var/log/mysql/ローカルマシンにフォルダーをマウントすることです。
よろしくお願いします!
Debianosを使用していますが、apparmorはすでに非アクティブ化されています。
chmod 777 /var/log/mysqlあなたのホストで試してみてください、あなたのホストのmysqlこのディレクトリに書き込む権限がユーザーにはないので、デーモンが実行されているに違いありません。その後、コンテナ内のmysqlユーザーIDを見つけて、chown誰もがデータベースログを読み書きしないようにする必要があります。