部署ASP.NET Core 应用到Docker

前言

本文很单纯的将.NET Core 应用程序部署到Docker上。

一、环境 

 1.1、开发环境

Win10 + VS2019/VS Code

1.2、部署环境 

CentOS 8.0 + Docker

二、部署前准备工作

 

2.1、在 CentOS8.0 上安装 Docker

a)、安装所需的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

部署 ASP.NET Core 应用到 Docker

b)、配置阿里云镜像源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

部署 ASP.NET Core 应用到 Docker

c)、安装最新版本的Docker Engine-Community 和 containerd.io

yum install docker-ce docker-ce-cli containerd.io

不好意思 ,报错了,既然报错了就解决呗!

从它的报错信息可以看出,docker-ce-3:19.03.13-3.el7.x86_64 这个家伙需要的 containerd.io 的版本要大于等于 1.2.2_3,目前我们本地的仓库没有这个版本,那我们就单独将它安装。

单独安装 containerd.io  

dnf install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.3.7-3.1.el8.x86_64.rpm

部署 ASP.NET Core 应用到 Docker

安装剩下的 Docker-ce 和Docker-ce-cli

dnf install docker-ce docker-ce-cli

部署 ASP.NET Core 应用到 Docker

验证是否安装成功

docker –version

部署 ASP.NET Core 应用到 Docker

设置开机自启,启动 Docker

systemctl enable docker

systemctl start docker

部署 ASP.NET Core 应用到 Docker

部署 ASP.NET Core 应用到 Docker

配置 Docker 加速器 【阿里】

 

vim /etc/docker/daemon.json

 

部署 ASP.NET Core 应用到 Docker

这里的地址我的,可以修改成你们自己的。

 

使其配置生效 

systemctl daemon-reload
systemctl restart docker

 部署 ASP.NET Core 应用到 Docker

2.2、编写 Dockerfile 并制作镜像(image)

 

根据 Dockerfile 制作镜像有两种方式:

  • 一种是在 Win10 上根据 Dockerfile 制作镜像,并将镜像发布到镜像仓库中或者将镜像上传到 CentOS 中

  • 还有一种就是将发布后的文件复制到 CentOS 上,并根据 Dockerfile 制作镜像。我这里采用的第二种。(我的开发机器上【Win10】没有安装 Docker)

    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    RUN echo 'Asia/Shanghai' >/etc/timezone
    ENV LANG C.UTF-8
    MAINTAINER Aju <10225608xx@qq.com>
    LABEL version="1.0"
    WORKDIR /app
    COPY . .
    EXPOSE 80
    EXPOSE 443
    ENTRYPOINT ["dotnet", " WebApi.dll"]

     

1、将应用程序发布后上传到【/var/www/api/】,并将编写好的 Dockerfile 也上传到【/var/www/api/】

肯定有人问,可以将 Dockerfile 上传到别目录下吗?答案是可以

2、制作镜像

cd /var/www/api/

制作镜像

docker build -t aju.webapi .

部署 ASP.NET Core 应用到 Docker

  • 使用 docker images 可以看到我们刚创建的镜像

部署 ASP.NET Core 应用到 Docker

2.3、创建并启动容器【后台运行】

 

1、使用上一步制作的镜像来创建并运行一个容器

部署 ASP.NET Core 应用到 Docker

2、docker ps 

部署 ASP.NET Core 应用到 Docker

3、OK 了,我们可以在访问了

部署 ASP.NET Core 应用到 Docker

三、总结

 

Docker 其实也没那么难,动手操作才是最重要的。

基础内容学习:https://docs.docker.com/get-started/ 


转自: cnblogs.com/haoxiaozhang/p/13985681.html

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...