连接到容器并创建3个文件后,将它们切换到mysql并重新启动容器,日志记录按预期工作。
指向主机卷权限问题。当你从一个容器映射到主机时,没有用户标识映射,附加到容器内的uid的名字可能与外部有很大不同。您需要使用容器用户可以写入的内容初始化目录权限。一种简单的方法是创建一个可以写入主机和容器上的文件的组,然后在图像和主机操作系统上将各种用户添加到该组。另一种选择是使用不直接从主机访问的命名文件系统,并使用映像的目录权限对其进行初始化。
编辑:您的码头工人,compose.yml名为量的一个例子是简单:
version: '2'
volumes:
mysql-data:
driver: local
mysql-log:
driver: local
mysql-conf:
driver: local
services:
db:
image: mysql:5.6.33
volumes:
- "mysql-data:/var/lib/mysql"
- "mysql-log:/var/log/mysql"
- "mysql-conf:/etc/mysql/conf.d"
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: rootpw
MYSQL_DATABASE: db
MYSQL_USER: db
MYSQL_PASSWORD: dbpw
请注意,我也删除从你的形象的名字SHA256,这个提法阻止你从能够拉图像的补丁版本。我也更喜欢“除非停止”的重启策略,以便Docker在重启时确实预计到这些事情。