部署.net6项目到docker |
【1】新建.net6 mvc或webapi项目;
【2】在mvc或webapi项目的根目录下创建Dockerfile文件,并设置为始终复制;
Dockerfile文件内容为:
#添加.net6基础镜像 FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base #容器工作目录 WORKDIR /app #指定项webapi或mvc站点的内部启动端口,默认是80 #ENV ASPNETCORE_URLS http://+:5001 #暴露docker容器端口 #EXPOSE 8001 #EXPOSE 443 #拷贝发布目录下的所有文件到容器的工作根目录 #COPY . . (这样写也可以) COPY ./ ./ # 如果用System.SqlClient.dll访问数据库,需要加这一句 RUN sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf #容器入口点 ENTRYPOINT ["dotnet", "dotnet6Demo.web.dll"]
【3】发布mvc或webapi项目;
【4】将发布后的mvc或webapi项目拷贝到centos服务器的某个文件夹,例如拷贝到【/wwwroot/myproject】文件夹;
【5】安装docker
安装方法参考:https://www.cnblogs.com/yyee/p/15642801.html
【6】安装.net6镜像
docker pull mcr.microsoft.com/dotnet/aspnet:6.0
【7】进入到centos服务器的 /wwwroot/myproject 目录,构建一个镜像,镜像名格式为【镜像名:版本号】,比如:dotnet6-demo:0.0.1
构建镜像命令:
docker build -t dotnet6-demo:0.0.1 .
dotnet6-demo 表示构建的镜像名称,:0.0.1表示镜像版本号,注意镜像名后面有个空格 + 英文点号,表示构建当前路径下的文件。
【8】创建并运行容器
docker run -d --name my-dotnet6-demo -p 8002:80 -v /appdata/demo-data dotnet6-demo:0.0.1
创建容器格式:
docker run -d --name 容器名 -p 外部端口号:docker容器端口号 -v 数据卷路径 镜像名
参数说明:
-d #后台运行
-p #缩主机端口号:docker端口号
-v #数据卷路径,格式:(-v /宿主机路径:容器路径)或者(-v /容器路径)
【9】访问容器
访问方式:http://宿主机ip:端口号
http://192.168.1.200:8002
进入到容器 |
【10】进入到容器
docker exec -it my-dotnet6-demo /bin/bash