centos 7 使用 docker 部署.net core 项目
项目框架为 .net5 webapi 项目
1 centos7 安装docker
参考链接
https://blog.csdn.net/cbh1987/article/details/120481157
2 创建基于.net 5框架启动项为 MyAdmin 的项目
项目中添加 Dockerfie 文件(如果没有,使用visual studio右击项目选择“添加”-》“添加docker支持”,然后把生成 Dockerfie 文件属性 “复制到输出目录”设置为“如果较新则复制”
visual studio 右击项目添加的dockerfile 文件内容修改如下
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base WORKDIR /app COPY . . EXPOSE 20010 ENTRYPOINT ["dotnet", "MyAdmin.dll"]
Dockerfile EXPOSE设置的端口需要与 需要与程序内部配置的端口一致(如 hosting.json 配置的端口);参考链接 https://blog.csdn.net/zbq2017/article/details/113792577
hosting.json 配置如下:
在项目 Program.cs 读取 hosting.json 配置启动端口如下
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseConfiguration( new ConfigurationBuilder() .SetBasePath(System.IO.Directory.GetCurrentDirectory()) .AddJsonFile(path: "hosting.json", optional: true, reloadOnChange: true) .Build() ) .UseStartup<Startup>() ; }) .UseSerilog() ;
3 使用visual studio的发布功能,发布项目,然后把发布生成的文件上传到linux的指定目录
linux 删除文件夹命令 rm -fr MyAdmin 删除 MyAdmin 文件夹
本项目把发布文件上传到 /publish/docker/MyAdmin 目录下
4 构建docker 镜像命令
# 进入到项目发布目录下
cd /publish/docker/MyAdmin
# 在项目发布目录下执行构建镜像命令 注意有个 命令里有个 . 不要忽略了
docker build -t myadmin20010 .
其中 myadmin20010 为镜像名
// 在项目发布目录下执行使用 myadmin20010 镜像创建容器实例命令
docker run -itd -p 20011:20010 --name myadmin20011_server myadmin20010
其中 -p 20011:20010 表示 把对主机 20011端口的访问映射到容器的20010端口;
-i 以交互模式运行容器,通常与 -t 同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d: 后台运行容器,并返回容器ID
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
--name 容器实例名
myadmin20010 为上一步build的镜像标签名
备注:其他常用命令
// 查看镜像列表
docker images
// 查看容器实例列表
docker ps -a
// 删除 myadmin20011_server 容器
docker rm -f myadmin20011_server
// 删除 myadmin20011 镜像
docker image rm myadmin20011
5 测试访问
访问链接
http://175.178.218.96:20011
需要保证 linux主机上 20011 端口开放了防火墙访问
参考资源
https://www.bilibili.com/video/BV1b44y1H7yM?p=97&spm_id_from=pageDriver