SQL Server in Docker 还原数据库 上一会演示了如果在Docker环境下安装SQL Server,这次我们来演示下如何还原一个数据库备份文件到数据库实例上。 使用winscp上传bak文件到linux服务器 上一回我们启动docker容器的时候使用了-v参数挂账了本地目录/hd2/sqlserver2019_data到容器内目录/var/opt/mssql,所以我们只需要把文件testdb.bak上传到/hd2/sqlserver2019_data目录,docker容器即可访问。 我使用了下Sql Server Management Studio的还原功能试了下,没有成功,不知是不是SSMS版本的问题。既然SSMS不能还原,那就使用命令行来试试吧。 使用docker exec命令在容器内执行命令 因为SQL Server安装在Docker容器内,所以执行命令行都需要进入到容器内。 sudo docker exec -it sqlserver2019 /bin/bash 接下来的命令全部在sqlserver2019容器内执行。 使用RESTORE FILELISTONLY命令列出备份数据文件的逻辑名 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'dev@123,' -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/testdb.bak"' | tr -s ' ' | cut -d ' '...
[Read More]
.Net-Core-自定义配置源-从配置中心读取远程配置
配置,几乎所有的应用程序都离不开它。.Net Framework时代我们使用App.config、Web.config,到了.Net Core的时代我们使用appsettings.json,这些我们再熟悉不过了。然而到了容器化、微服务的时代,这些本地文件配置有的时候就不太合适了。当你把本地部署的服务搬到docker上后,你会发现要修改一个配置文件变的非常麻烦。你不得不通过宿主机进入容器内部来修改文件,也许容器内还不带vi等编辑工具,你连看都不能看,改都不能。更别说当你启动多个容器实例来做分布式应用的时候,一个个去修改容器的配置,这简直要命了。
因为这些原因,所以“配置中心”就诞生了。配置中心是微服务的基础设施,它对配置进行集中的管理并对外暴露接口,当应用程序需要的时候通过接口读取。配置通常为Key/Value模式,然后通过http接口暴露。好了,配置中心不多说了,感觉要偏了,这次是介绍怎么自定义一个配置源从配置中心读取配置。废话不多说直接上代码吧。
模拟配置中心
我们新建一个asp.net core webapi站点来模拟配置中心服务,端口配置到5000,并添加相应的controller来模拟配置中心对外的接口。
```
[Route(“api/[controller]”)]
[ApiController]
public class ConfigsController : ControllerBase
{
public List<KeyValuePair<string,string» Get()
{
var configs = new List<KeyValuePair<string, string»();
configs.Add(new KeyValuePair<string, string>(“SecretKey”,”1238918290381923”));
configs.Add(new KeyValuePair<string, string>(“ConnectionString”, “user=123;password=123;server=.”));
[Read More]
sql server in docker
现在.net core已经跨平台了,大家也都用上了linux用上了docker。跟.net经常配套使用的SQL SERVER以前一直是windows only,但是从SQL Server 2017开始已经支持运行在docker上,也就说现在SQL Serer已经可以运行在linux下了。 下面在Ubuntu 16.4上演示安装并使用SQL Server 2019-CTP3.2 SQL Server in Docker sudo docker pull mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu 使用docker pull命令从docker hub拉取sqlserver 2019-ctp3.2的镜像 sudo mkdir /hd2/sqlserver2019_data sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=dev@123," -p 14330:1433 --name sqlserver2019 -v /hd2/sqlserver2019_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu 使用docker run 命令启动容器,其中要注意的是使用-v参数指定了sqlserver2019_data目录挂载到容器的/var/opt/mssql目录,这个目录是用来存储数据库文件的,所以最好挂载到外容器外部,避免因为不小心删除容器而丢失数据 sudo docker ps -a 使用docker ps...
[Read More]
.net core in docker 在容器内编译并发布
Docker可以说是现在微服务,DevOps的基础,咱们.Net Core自然也得上Docker。.Net Core发布到Docker容器的教程网上也有不少,但是今天还是想来写一写。 你搜.Net core程序发布到Docker网上一般常见的有两种方案: 1、在本地编译成Dll文件后通过SCP命令或者WinSCP等工具上传到服务器上,然后构建Docker镜像再运行容器。该方案跟传统的发布很像,麻烦的地方是每次都要打开相关工具往服务器上复制文件。 2、在服务端直接通过Git获取最新源代码后编译成Dll然后构建Docker镜像再运行容器。该方案免去了往服务器复制文件这步操作,但是服务器环境需要安装.Net Core SDK 来编译源代码。 自从用了Docker简直懒的不能自理,我既不想手工复制文件到服务器,也不想在服务器装.Net Core环境。显然只要Docker镜像包含.Net Core SDK环境就可以在Docker内帮我们编译代码然后运行,这样连我们的服务器都不用装啥.Net Core的环境拉。 在Docker内编译发布.Net Core程序并运行 新建一个Asp.net Core MVC项目 我们使用一个Asp.net Core MVC程序来演示如何发布到Docker并运行。 使用vs新建一个Asp.net core mvc项目 public class HomeController : Controller { public IActionResult Index() { return Content($"Core for docker , {DateTime.Now} , verson 2"); } } 修改HomeController下的index Action,直接输出一段文字 public...
[Read More]