记一次学习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 就能打开了