Assume that you run a SQL Server 2017 Linux container image on Docker for Windows. When Docker images are used to provision containers and you use volume mount location (default location of /var/opt/mssql) or any parent directory, SQL Server will not start. Additionally, you receive an error message that resembles the following:
date time spid6s Error: 17053, Severity: 16, State: 1.
date time spid6s /var/opt/mssql/data/mastlog.ldf: Operating system error 31(A device attached to the system is not functioning.) encountered.
date time spid6s Error: 9002, Severity: 17, State: 0.
date time spid6s The transaction log for database 'master' is full because of 'NOTHING'.
date time spid6s Error: 928, Severity: 20, State: 1.
This issue occurs because the directory from Windows is mounted as Common Internet File System (CIFS) inside the Docker container. CIFS is not officially supported as a file system by SQL Server on Linux.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.