标签:容器 name netcore 部署 apricot yaml 镜像 docker k8s
一、创建.netcore项目
①、选择docker支持相应环境
②、已经生成Dockerfile【使用默认Dockerfile只需修改EXPOSE(使用端口)】
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base WORKDIR /app EXPOSE 7000 FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build WORKDIR /src COPY ["OpenSlide.Fast.csproj", ""] RUN dotnet restore "./OpenSlide.Fast.csproj" COPY . . WORKDIR "/src/." RUN dotnet build "OpenSlide.Fast.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "OpenSlide.Fast.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "OpenSlide.Fast.dll"]
二、生成镜像、运行镜像【我这边使用Docker Desktop生成镜像,上传至Docker Hub,如需下载:Docker Desktop】
①、打开powershell或dos(cmd),定向至项目地址
②、打包镜像、查看镜像【openslide-->镜像名称,. -->当前目录】
#下载微软dotnet镜像【好像用会到里面的sdk】
docker pull microsoft/dotnet
#打包创建镜像
docker build -t apricot .
#查看所有镜像 docker images
③、添加运行容器
#运行容器 --name:容器名称 -d:容器后台运行 -p:将本地计算机上的端口 7001 映射到容器中的端口 7000,openslide-image:镜像名称
docker run --name apricot -d -p 7001:7000 apricot
④、浏览运行容器
⑤、docker基本操作命令
#列出所有镜像 docker images #列出所有容器【包括为运行的】 docker ps -a #停止容器 container_id-->容器Id docker stop container_id #删除容器 docker rm container_id #删除镜像 image_name-->镜像名称 docker rmi image_name
#查看日志
docker logs container_id
⑤、docker使用阿里云镜像加速【免费,注册登录即可获取】
#查看配置 docker info
二、将镜像上传至docker hub
①、登录docker hub
②、创建仓库
③、提交容器
#提交运行的容器 docker commit container_id 1764564459/apricot #仓库地址
④、推送镜像
#登录容器【我这已经登录,未登录会提示登录】 docker login
#推送镜像至docker hub latest-->版本号
docker push 1764564459/apricot:latest
二、配置k8syaml文件、运行netcore【master】
①、创建apricot.yaml,配置yaml文件【yaml配置】
#创建yaml文件加
mkdir /opt/yaml/netcore/apricot
#定位至apricot文件夹
cd /opt/yaml/netcore/apricot
#创建配置文件
touch apricot.yaml
#打开文件
vi apricot.yaml
#写入配置【去掉注释】
apiVersion: apps/v1 kind: Deployment metadata: name: k8s-apricots labels: name: k8s-apricots spec: replicas: 2 selector: matchLabels: name: k8s-apricots template: metadata: labels: name: k8s-apricots spec: containers: - name: k8s-apricots image: 1764564459/apricot #镜像地址 ports: - containerPort: 7000 #端口要与netcore端口一致 imagePullPolicy: Always --- kind: Service apiVersion: v1 metadata: name: k8s-apricots spec: type: NodePort ports: - port: 7000 targetPort: 7000 selector: name: k8s-apricots
②、kubectl 应用提交apricot.yaml
kubectl apply -f apricot.yaml
③、查看运行状态及映射端口
#查看镜像映射端口【46552:暴露访问端口】
kubectl get svc
#查看所有pods运行状态【都是Running,一个是service,一个是Deployment】
kubectl get pods
④、访问netcore【Node节点(IP+暴露端口)】
标签:容器,name,netcore,部署,apricot,yaml,镜像,docker,k8s 来源: https://www.cnblogs.com/study10000/p/14898471.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。