通常在本机开发环境中需要搭建所有的服务,还要修改本地的
hosts,实在是不胜其烦。如今有了docker,完全不用污染本地环境,且看老司机带你搭建一个asp.net core的开发环境集群。愿你走出虚拟机,归来仍是干净的开发机。
bash,执行以下命令
cd ~
mkdir mssql
cd mssql
vim Dockerfile
# mssql-server-linux
# Maintainers: Microsoft Corporation (LuisBosquez and twright-msft on GitHub)
# GitRepo: https://github.com/Microsoft/mssql-docker
# Base OS layer: Latest Ubuntu LTS.
FROM microsoft/mssql-server-linux
# 设置证书
ENV ACCEPT_EULA Y
# 设置sa帐户的密码
ENV SA_PASSWORD Sql123123.
# Default SQL Server TCP/Port.
EXPOSE 1433
# Copy all SQL Server runtime files from build drop into image.
#COPY ./data /data
# 挂载一个数据卷,用于放置脚本和备份数据
VOLUME /data
# Run SQL Server process.
CMD /opt/mssql/bin/sqlservr.sh
:wq
docker build -t mssql .,最后一个点别忘了。
mssql挂载:
mkdir mssqldata
docker run -d -v /(!绝对路径!)/mssqldata:/data mssql,以后就使用该容器提供的数据库服务,不要轻易删除,可以stop/restart。
docker exec -it <container_id|container_name> /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P <your_password>(ps:SqlCmd是一种命令行管理工具,还可以通过VS Code使用图形化管理)
/(!绝对路径!)/mssqldata。
/(!绝对路径!)/mssqldata/testdb.sql,我的
testdbd.sql中包含了
data & scheme。(mssqlserver生成sql脚本的过程大家应该是知道的。)
mdf文件的语句:
CREATE DATABASE [TestDb] CONTAINMENT = NONE ON PRIMARY ( NAME = N'TestDb', FILENAME = N'C:\xxx\TestDb.mdf' , SIZE = 4096KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'TestDb_log', FILENAME = N'C:\xxx\TestDb_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) GO
FILENAME = N'/data/TestDb.mdf‘,还有一个
ldf文件可别忘了。
docker exec -it <container_id|container_name> /bin/bash(PS:命令
docker ps -a可以查看到该容器的id和name,或者在启动容器的时候指定name)
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P <your_password> -i /data/testdb.sql,此处的
-i参数就表示执行后面的sql脚本。前面已经把sql脚本放在了数据卷中,所以在容器的
/data中就能拿到了。
mssqlserver已经好太多了。
本文为 @ 21CTO 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。