【个人学习】: NetCore程序部署到Docker
系统环境
-
- 宿主机:Win7
- linux服务器: ubuntu.16.04-x64; 由于win7不支持Hyper-v,只能采用Docker Toolbox的方式使用Docker
- 开发工具:Visual Studio 2019
- sdk:netcore2.2
- 远程管理工具:ScureGRT8.1
- SFTP客户端:WinSCP
- 容器:Docker19.03.4
安装docker
-
- Docker ToolBox安装:https://docs.docker.com/toolbox/overview/ 安装过程很简单,保持默认选项,直接【next】即可。VirualBox和Git如果已经安装,也可以不选
- 安装完成后,桌面上会多出3各图标,如下。其中VirtualBox提供了linux虚拟机的运行环境,Docker Quickstart Terminal用于快速介入linux虚拟机,提供命令行交互,Kitematic是docker GUI很少用到。
- 问题*:如果装完之后打开Docker Quickstart Terminal提示找不到bash.exe,右键Docker Quickstart Terminal,属性,D:\Install\gitclient\bin\bash.exe --login -i "D:\Install\docker\Docker Toolbox\start.sh" ;bash.exe 指向git的bash所在目录
- 启动:第一次运行Docker Quickstart Terminal时会进行Docker环境的初始化,会在VirtualBox中自动创建名字为【default】的linux虚拟机,默认情况下,启动程序会从GitHub上下载此文件的最新版,如果下载失败请参考(https://www.cnblogs.com/canger/p/9028723.html)
- 启动成功,如下:(default默认账号密码: docker/tcuser),其中 【192.168.99.100】是VirtualBox中名字为【default】虚拟机的ip
- 使用ScureCRT进行SSH登录Docker环境(其实就是远程访问default linux虚拟机)登陆成功后,如下:
NetCore docker下的配置
-
- 安装asp.net core镜像:sudo docker pull microsoft/dotnet
- 查看镜像是否存在sudo docker images
发布NetCore项目
-
- 使用VS发布netcore
- docker新建发布文件夹:cd /home/docker/ ;在docker目录下新建publish :mkdir publish ;给publish目录授权chmod -r 777 /home/docker/publish
- 将发布的文件通过WinSCP上传到docker 的publish目录下
使用docker部署
-
- build镜像:在build的时候注意,命令最后一定要有个".", 并且镜像名称也不允许出现大写,如果想带上版本号的话 可以输入命令:
- sudo docker build -t netcoredockertest:v1 .
- sudo docker images 查看镜像
- 运行build sudo docker run -d -t -p 5000:80 netcoredockertest #运行镜像
- 查看正在运行的容器:sudo docker ps
- 查看所有的容器信息:sudo docker ps -a
- 测试结果: