gpt4 book ai didi

sql-server - 在MacBook OSX上从SqlServer开始优化Docker容器的问题

转载 作者:行者123 更新时间:2023-12-02 19:21:48 25 4
gpt4 key购买 nike

我是Docker新手,并且已设法创建简单的步骤来创建,启动和加载运行sqlserver的镜像以及数据库备份。对我来说,这是三个步骤。

docker pull mcr.microsoft.com/mssql/server:2019-latest
docker run --name SQL19c -p 1433:1433 -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=xxxx" -v /Users/useraccount/sql:/sql -d mcr.microsoft.com/mssql/server:2019-latest
docker exec -it SQL19c /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'xxxx' -Q 'RESTORE DATABASE svcodecamp FROM DISK = "/sql/sv-small-2019.bak" WITH MOVE "361684_codecamp08_dat" TO "/var/opt/mssql/ata/codecamp08_dat.mdf", MOVE "361684_codecamp08_log" TO "/var/opt/mssql/data/codecamp08_log.mdf"'

这是在运行OSX的Macbook上,我经常重新启动它,因此每次需要使用SqlServer时都需要这样做。

对此有疑问:

1)每次执行此操作时,都必须将SQL19c递增到Sql19d(或下一个字母),因为在使用名称时会出现错误。如何重用同名?

2)如果我管理该容器,则需要重新拖动整个图像(1gig)。我只需要启动它并重新加载数据,而不是提取整个图像

3)是否有更优化的方式来启动SqlServer并加载数据,而无需每次重启计算机或重新启动docker时都消耗过多电池?

(请注意,我的备份文件位于docker共享上,因此无需在其中进行复制)

最佳答案

  • 这是因为您已经有一个使用此名称的容器。尝试执行命令:

  • docker container list -a
  • 如果重新拖动图像,我认为您删除了图像而不是容器来删除容器,则必须运行

  • docker container rm SQL19x 
  • 方法是重新启动容器,删除数据库,然后还原数据库

  • 运行 ONCE :这将创建一个SQL19x 容器

    docker pull mcr.microsoft.com/mssql/server:2019-latest
    docker run --name SQL19x -p 1433:1433 -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=xxxx" -v /Users/useraccount/sql:/sql -d mcr.microsoft.com/mssql/server:2019-latest

    现在,每次重新启动计算机时,都必须运行以下命令来启动容器并重新启动数据库。

    docker container start SQL19x
    docker exec -it SQL19x /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'xxxx' -Q 'DROP DATABASE svcodecamp'
    docker exec -it SQL19x /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'xxxx' -Q 'RESTORE DATABASE svcodecamp FROM DISK = "/sql/sv-small-2019.bak" WITH MOVE "361684_codecamp08_dat" TO "/var/opt/mssql/ata/codecamp08_dat.mdf", MOVE "361684_codecamp08_log" TO "/var/opt/mssql/data/codecamp08_log.mdf"'

    如果要在关机之前彻底关闭计算机,请执行

    docker container stop SQL19x

    关于sql-server - 在MacBook OSX上从SqlServer开始优化Docker容器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59108578/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com