记一次学习docker部署aspnet core 2.2的过程

 

首先,我的学习服务器环境:

腾讯云服务器:1 核 2 GB 1 Mbps

操作系统:CENTOS 7.4

 

进入正题:进入服务器,安装docker

yum install docker

  然后启动docker服务

systemctl start docker.sevice

  配置开机启动

systemctl enable docker.service

  查看docker版本

docker -v

  

这是我安装的版本,1.13.1

------------------------------------------------------------------------------------

接下来,可以准备好.net core 2.2的测试项目了,我这里使用的是.net core 2.2的MVC项目。

首先,修改Program.cs口:

把端口改为8080.后面会知道为什么修改端口。 

 

在项目根目录创建个dockerfile文件,这个是没有后缀的。

(PS:如果是新建的项目,可以在新建项目的时候选择启用docker支持,会自动生成Dockerfile文件)

 原本dockerfile文件里面的配置是有写进行代码编译打包的,但是我这里是本地打包,把发布后的文件复制到服务器上面的,所以这里就改一下dockerfile文件

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
EXPOSE 8080

WORKDIR /app
COPY . /app
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

FROM是指定该镜像的运行环境。

然后指定容器映射端口8080

最后dotnet运行项目

发布项目到某目录,把发布文件复制到linux服务器上面。我这里服务器路径是 Home/www/testsite

 

------------------------------------------------------------------------------------------

这里回到服务器。

进入到Home/www/testsite目录里面。

进来过后,把目录文件通过dockerfile加载到docker镜像。

docker build -t testsite:1.0 .

  调用命令 docker images 会发现已经有这个镜像了

如果服务器没安装  mcr.microsoft.com/dotnet/core/aspnet:2.2 这个镜像的话,docker会拉取这个镜像下来。

最后,运行 docker run -p 8080:8080 testsite:1.0              (8080:8080表示的是容器内端口映射容器外端口)

当看到运行起来过后,就表示能打开了。(如果是云服务器有安全组策略的,需要打开8080端口。)

通过外网IP访问xxx.xxx.xx.xx:8080 就能打开了

 

posted @ 2019-08-14 15:34  小胖脸  阅读(760)  评论(0编辑  收藏  举报