yor*_*ram 18 sql-server docker
我在我的 Linux 机器上运行以下命令,并且想要附加一个卷,就像在 Mysql 中一样
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=12345678' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest
Run Code Online (Sandbox Code Playgroud)
Seb*_*sch 27
您也可以在 Microsoft SQL Server 上附加卷,如Microsoft 文档中所述:
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=12345678' -p 1433:1433 -v <host directory>/data:/var/opt/mssql/data -v <host directory>/log:/var/opt/mssql/log -v <host directory>/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2017-latest
Run Code Online (Sandbox Code Playgroud)
使用上述命令将容器的三个文件夹挂载到主机目录:
<host directory>/data:/var/opt/mssql/data<host directory>/log:/var/opt/mssql/log<host directory>/secrets:/var/opt/mssql/secrets您还可以使用数据卷容器而不是安装的主机目录:
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=12345678' -p 1433:1433 -v sqlvolume:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
Run Code Online (Sandbox Code Playgroud)
sae*_*iri 10
您可以将其用作docker-compose.yaml文件:
services:
mssql:
image: mcr.microsoft.com/mssql/server:2022-latest
ports:
- 1433:1433
volumes:
- ./data:/var/opt/mssql/data
- ./log:/var/opt/mssql/log
- ./secrets:/var/opt/mssql/secrets
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=123456789
Run Code Online (Sandbox Code Playgroud)
然后,为了防止权限被拒绝错误,创建数据、日志和机密文件夹并更改它们的权限:
mkdir data && sudo chown 10001 data
mkdir log && sudo chown 10001 log
mkdir secrets && sudo chown 10001 secrets
Run Code Online (Sandbox Code Playgroud)
最后,用于docker-compose up -d启动容器。