部署ASP.NET Core 应用到Docker
(给DotNet加星标,提升.Net技能)
转自:AjuPrince cnblogs.com/haoxiaozhang/p/13985681.html
前言
不说Docker是啥,容器是啥镜像又是啥《看完此文,你还会担心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
b)、配置阿里云镜像源
yum-config-manager --add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
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
安装剩下的 Docker-ce和Docker-ce-cli
dnf install docker-ce docker-ce-cli
验证是否安装成功
docker --version
设置开机自启,启动Docker
systemctl enable docker
systemctl start docker
配置Docker 加速器 【阿里】
vim /etc/docker/daemon.json
这里的地址我的,可以修改成你们自己的。
使其配置生效
systemctl daemon-reload
systemctl restart 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 .
使用 docker images 可以看到我们刚创建的镜像
2.3、创建并启动容器【后台运行】
1、使用上一步制作的镜像来创建并运行一个容器
2、docker ps
3、OK了,我们可以在访问了
三、总结
Docker 其实也没那么难,动手操作才是最重要的。
基础内容学习:https://docs.docker.com/get-started/
- EOF -
看完本文有收获?请转发分享给更多人
推荐关注「DotNet」,提升.Net技能
点赞和在看就是最大的支持❤️