ここでは、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/mysql
docker-composeからこのボリューム()を削除すると、コンテナーにログファイルが表示されます。
私の計画は、/var/log/mysql/
ローカルマシンにフォルダーをマウントすることです。
よろしくお願いします!
Debian
osを使用していますが、apparmorはすでに非アクティブ化されています。
chmod 777 /var/log/mysql
あなたのホストで試してみてください、あなたのホストのmysql
このディレクトリに書き込む権限がユーザーにはないので、デーモンが実行されているに違いありません。その後、コンテナ内のmysqlユーザーIDを見つけて、chown
誰もがデータベースログを読み書きしないようにする必要があります。