我想從mysql容器內的主機掛載一個目錄,以便mysql將它的日誌寫入該目錄,並且我將能夠從主機訪問這些日誌。將mysql容器的日誌掛載到主機目錄中
對於這個我使用下列卷配置:
volumes:
- ./logs/mysql:/var/log/mysql
但隨着this答覆中指出,有主機的用戶和用戶的容器之間的權限問題。那裏的解決方案是使用命名卷,但我想要的是在方便的目錄中訪問主機上的這些日誌。不在碼頭的內部目錄中。
我想從mysql容器內的主機掛載一個目錄,以便mysql將它的日誌寫入該目錄,並且我將能夠從主機訪問這些日誌。將mysql容器的日誌掛載到主機目錄中
對於這個我使用下列卷配置:
volumes:
- ./logs/mysql:/var/log/mysql
但隨着this答覆中指出,有主機的用戶和用戶的容器之間的權限問題。那裏的解決方案是使用命名卷,但我想要的是在方便的目錄中訪問主機上的這些日誌。不在碼頭的內部目錄中。
於是我就默認圖像並提出一些意見
/var/log/mysql
在所有創建的日誌文件。這是因爲默認的my.cnf
有error-log
設置評論/etc/mysql/mysql.conf.d
/entrypoint.sh
不會改變/var/lib/mysql
的權限,但不能在/var/log/mysql
因此,要解決這個問題,你添加一個test.cnf
文件下面的內容
[mysqld]
log-error = /var/log/mysql/error.log
general_log = /var/log/mysql/log_output.log
和最多日期的下方設置
version: '2'
services:
mysql:
image: mysql:latest
volumes:
- ./logs:/var/log/mysql
- ./test.cnf:/etc/mysql/mysql.conf.d/test.cnf
environment:
MYSQL_ROOT_PASSWORD: root
entrypoint: ""
command: bash -c "chown -R mysql:mysql /var/log/mysql && exec /entrypoint.sh mysqld"
泊塢窗,撰寫這將確保運行的入口點腳本適當的權限設置
之前,您仍然可以從任何人訪問它們使用sudo權利。 –
@NigelRen問題是,除非明確授予權限,否則mysql不會將日誌寫入目錄。 – Ayushya
你正在使用哪個mysql映像? –