很久以前学过一段时间的docker,那时装了电脑卡得受不了,学了一会就卸载了,最近电脑又装上了docker,感觉好像没有以前这么卡了,还是同一台电脑surface pro4, 试了一下visual studio中做的网站运行在docker上,下面是一些简记
环境:win10 + docker desktop + visual studio 2017 + mysql , 其中MYSQL是安装在c:/mysql 里的
打开visual studio 网站项目,在Niunan.Blog.Web项目上右键添加doker支持,选linux 支持, 会生成Dockerfile文件
直接点那个绿三角图标运行,结果等了好久好久,卡在那个界面上
原来是docker正在下载底层的包的,会很慢很慢,可以先停掉VS。然后在cmd命令行下运行
docker pull microsoft/dotnet:2.2-aspnetcore-runtime
和
docker pull microsoft/dotnet:2.2-sdk
然后再点绿三角图标运行,运行成功了,弹出浏览器了,不过显示不了
后来发现是我Program.cs代码里用了useurl了,因为之前我是做了N个网站,都部署在一台linux服务器上的,所以给每个网站都分配了一个自定义的端口的,DOCKER运行的时候又自动分配了一个32768端口,可能冲突了吧,把这一行注释掉,运行就正常了
运行界面显示正常了,但是在连接数据库的时候又出错了
数据库连接字符串是 localhost 的,这个在docker里连接不了的,必须得写成本地的IP地址,如192.168.0.110, 可从cmd窗口里用ipconfig查看
然后可以先在本地打开sqlyog,用192.168.0.110连接看看能不能连接上数据库,不能的话还得改那个mysql数据库里的users表里的root用户的localhost改为%,
然后再试就可以用192.168.0.110连接上数据库了
改好项目里的数据库连接字符串,再运行docker项目,界面显示出来了,数据库也连接上了,yeah~~
后续计划,把本地docker那个网站的镜像导出成zip,再传到linux服务器上用docker运行,再服务器上用nginx转发绑定不同的域名,在浏览器里测试
然后配置vs插件antdeploy插件,能够直接在VS里发布镜像并自动上传到linux服务器上部署起来,再把整个流程录成视频~~~