.net6项目打包成镜像
项目中新建Dockerfile文件:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app #拷贝发布目录下的所有文件到容器的工作根目录 COPY ./ ./ # 如果用System.SqlClient.dll访问数据库,需要加这一句 # RUN sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf #容器入口点,启动文件相对于Dockerfile的位置,改成项目真实的相对位置 ENTRYPOINT ["dotnet", "WebApi.dll"]
将Dockerfile的属性改为始终输出
右键,发布项目。
将发布后的文件传输到CentOS服务器,假设传输到了服务器/apps/publish文件夹中
那么,开始打包镜像
docker build -t ImageName:TagName dir # 这里我们改成,其中.是当前目录相对于Dockerfile的位置
cd /apps/publish
docker build -t myWebApi:001 .
将打包后的镜像打上tag,便于知道推送的url
docker tag [ImageId] [目的Url]:[镜像版本号]
# 比如
docker tag 3de9 registry.cn-hongkong.aliyuncs.com/mywebapi:v1
其中[目的Url]为私人仓库地址,我用的是阿里云私人仓库,免费申请
推送镜像到阿里云私人仓库
docker push [刚才打上的tag]
# 如
docker push registry.cn-hongkong.aliyuncs.com/mywebapi:v1
此时在K8S中编辑工作负载的镜像版本, 输入registry.cn-hongkong.aliyuncs.com/mywebapi:v1, 即可使用镜像