【问题标题】:Unable to bind mount a Windows folder in a Linux SQL Server docker image无法在 Linux SQL Server docker 映像中绑定挂载 Windows 文件夹
【发布时间】:2020-08-30 05:46:13
【问题描述】:

我正在尝试在 Windows 主机上运行 docker 映像 mcr.microsoft.com/mssql/server:2019-latest。

运行此命令行时,一切正常:

docker run --rm -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=My_Password" -p 1433:1433 mcr.microsoft.com/mssql/server:2019-latest

当我尝试绑定挂载 /var/opt/mssql/data 文件夹以从我的 Windows 主机访问它的内容时,我收到以下错误:

PS C:\Docker> docker run --rm -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=My_Password" -v C:\SQL\data:/var/opt/mssql/data -p 1433:1433 mcr.microsoft.com/mssql/server:2019-latest
SQL Server 2019 will run as non-root by default.
This container is running as user mssql.
To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216.
2020-05-13 20:39:01.91 Server      Setup step is copying system data file 'C:\templatedata\master.mdf' to '/var/opt/mssql/data/master.mdf'.
2020-05-13 20:39:01.99 Server      ERROR: Setup FAILED copying system data file 'C:\templatedata\master.mdf' to '/var/opt/mssql/data/master.mdf':  31(A device attached to the system is not functioning.)
ERROR: BootstrapSystemDataDirectories() failure (HRESULT 0x8007001f)

看起来像这个问题:https://support.microsoft.com/en-us/help/4212960/fix-sql-server-2017-won-t-start-with-linux-container-image-on-docker 这应该是固定的。但我尝试了几个版本的 docker 镜像,包括 mcr.microsoft.com/mssql/server:2017-CU7-ubuntu,它应该是修复该问题的版本。

【问题讨论】:

    标签: sql-server linux docker mount


    【解决方案1】:

    这似乎是新的 Docker for Windows 版本中的一个问题。我确实从 2.3.0.2 回滚到 2.2.0.5,现在绑定挂载按预期工作。

    在 mssql-docker github 中提出了一个关于它的问题:https://github.com/microsoft/mssql-docker/issues/600

    【讨论】:

    • 谢谢!当我用Docker 2.3.0.2 更新Docker 2.2.0.5 并开始收到错误时,我遇到了完全相同的情况:BootstrapSystemDataDirectories() failure。降级回以前的版本解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 2014-03-24
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多