已装载卷的 Azure 容器实例上的数据丢失

时间:2021-07-16 13:43:39

标签: sql-server azure docker containers docker-volume

我刚刚在 azure 上创建了一个容器实例,其中包含一个 sql server docker 映像和一个挂载的文件共享存储作为卷。事实是容器卡住了,所以我重新启动了它。

重启后,所有数据都没了。当我在本地重新启动 docker 容器时,数据会因卷而保持存在,因此我无法理解 azure 上的行为。

对此有任何线索吗?

这是我用来创建容器的 cli 命令

public class GroupedShowbackSummaryListDto
{
    public int RuleId { get; set; }
    public string RuleName { get; set; }
    public decimal TotalPrice { get; set; }
    public List<GroupedProjectForShowbackSummary> Projects { get; set; }
}

public class GroupedProjectForShowbackSummary
{
    public int? Id { get; set; }
    public string Name { get; set; }
    public decimal TotalPrice { get; set; }
}

1 个答案:

答案 0 :(得分:0)

尝试如下编辑您的命令

" "ACCEPT_EULA=Y 左右使用 key-value,如下所示。并将 SA_PASSWORD 替换为 MSSQL_SA_PASSWORD

--environment-variables "MSSQL_SA_PASSWORD=Password" "ACCEPT_EULA=Y" \

SQL Server 映像的必需设置,至少 8 个字符且符合 SQL Server password requirements 的强密码。鉴于您已经设置了适当的strong 密码和存储密钥,下面的命令对我来说很好用。如果密码不符合 SQL 标准,此容器将失败(重启循环)。

PS /home/karthik> $Password = "MyStrongPassword"
PS /home/karthik> $key = "FO/R6WkZELhMzX02wi9KahtLtKppoSIJg/EcJLEnZajRm2uxXs0sb/APaCk1eRsNW31yijSjS1hFm5Rd4rdTew=="

az container create --resource-group Myrg \
--name project-test-db \
--image mcr.microsoft.com/mssql/server:2019-latest \
--location westus2 \
--ports 1433 \
--memory 5  \
--environment-variables "SA_PASSWORD=$Password" "ACCEPT_EULA=Y" \ 
--ip-address public \
--azure-file-volume-account-name kteststoragee \ 
--azure-file-volume-account-key $key \ 
--azure-file-volume-share-name ktestfs2 \ 
--azure-file-volume-mount-path /databases

enter image description here

enter image description here

当您在 Azure 容器实例中有行为不端的容器时,首先使用 az container logs 查看其日志,然后使用 az container attach 流式传输其标准输出和标准错误。

az container attach 命令在容器启动期间提供诊断信息。容器启动后,它会将 STDOUT 和 STDERR 流式传输到您的本地控制台。

参考:Quickstart: Run SQL Server container images with DockerDocker run command fails with Accept-Eula Agreement error #199

相关问题