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.
The fix for this problem is included in the following update for SQL Server:
Cumulative Update 7 for SQL Server 2017
About SQL Server builds
Each new build for SQL Server contains all the hotfixes and security fixes that were in the previous build. We recommend that you install the latest build for your version of SQL Server:
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Learn about the standard terminology Microsoft uses to describe software updates.
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.