C# .net项目Docker方式部署
安装Docker Desktop Installer
安装成功后,输入 docker -v
可以查到docker版本
项目DockerFile配置
添加Docker支持
# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。
# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
COPY . .
ENTRYPOINT ["dotnet", "JOC.LicServer.dll"]
项目编译发布:
本地测试生成docker镜像
生成命令执行前,先确保运行了docker
在编译目录运行命令:
docker build -t joc.lic.server:25.102.100 .
Linux服务器部署
修改数据库连接配置:
Data Source=mssql,14338;User Id=sa;Password=123456;Initial Catalog=LicServer;Pooling=True;Connect Timeout=30;App=JOCSOFT;MultipleActiveResultSets=True;Trust Server Certificate=True;
这里datasource使用容器会报错,无法连接,具体怎么用先不管,应该是端口号。先使用ip地址吧
mssql:
对应sqlserver关联容器的映射名称
创建docker镜像
docker build -t joc.lic.server:25.102.100 .
容器编译后,运行docker images
查看镜像是否存在
运行容器
docker run -d --name joc.lic.server -p 9010:8080 --link=xSqlserver2019:mssql -v /opt/JocLicServer:/app joc.lic.server:25.102.100 --restart=always
上面命令运行会报错。提示.netSDK不存在什么得,因此我们去掉-v指令,就正常了
docker run -d --name joc.lic.server -p 9010:8080 --restart=always
--link=xSqlserver2019:mssql
xSqlserver2019为sqlserver容器名称 mssql为映射容器的别名
其他:
查看镜像列表
docker images
删除镜像
docker rmi <ImageID>
创建容器
docker run -d -p 8080:8080 --name jira_7.2.2 --link=mysql_5.5:mysql cptactionhank/atlassian-jira-software:7.2.2
docker run -d --name joc.lic.server -p 9010:8080 --link=xSqlserver2019:mssql-v /opt/JocLicServer:/app joc.lic.server:25.102.100 --restart=always
docker run -d --name joc.lic.server -p 9010:8080 joc.lic.server:25.102.100 --restart=always
docker run -d --name joc.lic.server --restart=always -p 9010:8080 --mount type=bind,source=/opt/JocLicServer,target=/app joc.lic.server:25.102.100
设置目录权限
chmod -R 755 /opt/JocLicServer
删除容器
停止
docker stop joc.lic.server
或kill
docker kill joc.lic.server
删除
docker rm joc.lic.server
创建一个SQL2019容器Bridge网络
docker network create sql2019net
查询容器网络
docker network ls
容器中执行bash
docker exec -it joc.lic.server bash
docker exec -u root -it test.api /bin/bash
查看容器网络信息
docker inspect test.api | grep -A 20 "Networks"
xSqlserver2019
13d7b23baecc
apt -y install iputils-ping
docker run -it --name centos-1 --network testnet --network-alias centos-1 docker.io/centos:latest
docker run -it --name centos-2 --network testnet --network-alias centos-2 docker.io/centos:latest
测试:
http://127.0.0.1:9010/WeatherForecast