连接到容器并创建3个文件,将它们插入mysql并重新启动容器后,日志记录将按预期工作。
这指向主机卷权限问题。当您从容器映射到主机时,不会在用户ID上进行映射,并且容器内部uid附带的名称可能与外部的名称有很大不同。您需要使用容器用户可以写入的内容来初始化目录权限。一种简单的方法是创建一个有权写入主机和容器上文件的组,然后将各种用户添加到映像和主机OS上的该组中。另一种选择是使用您不能直接从主机访问的命名文件系统,并使用映像的目录权限对其进行初始化。
编辑:使用您的docker-compose.yml命名卷的示例非常简单:
version: '2'volumes: mysql-data: driver: local mysql-log: driver: local mysql-conf: driver: localservices: 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在重启时执行预期的操作。



