Docker部署ASP.NET Core项目

1、将发布后的项目上传到linux服务器指定目录中

2、编写Dockerfile文件

vim Dockerfile

FROM microsoft/dotnet:latest
WORKDIR /root
# Copy the app file to root 
COPY publish /root/
# Configure the listening port to 80 端口
EXPOSE 80/tcp
# Start the app 宿主名称 SMSService
ENTRYPOINT ["dotnet", "OutsideInter.dll"]
#设置容器的时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

 

 

3、构建镜像和容器

docker build -t dotnetapi .

在Dockerfile的目录下,执行 docker build -t dotnetapi . (注意包含 . )  ,构建出一个包含web程序所有内容的dotnetapi容器。

注意点:

1:docker build -t dotnetapi .    最后的 点  .   这个前面一定要有空格

2:Dockerfile  文件vim  修改是,注意 前面的首先字母是大写D,  Linux区分带小写

3:docker build -t dotnetapi . 该命令必须是跟  Dockerfile   文件同一级别的目录下执行操作

4:Dockerfile 文件里面有一个 COPY publish /root/    这个需要注意 publish 是文件夹的意思,就是需要安装的包名称,这个必须一致,否则报错。但是不是必须取名字叫publish。只要文件夹名称跟配置保持一致即可。

5:docker build -t dotnetapi .   中的 dotnetapi是镜像名字,可以取跟项目相关的名字

6:docker images查看 执行成功后的镜像

 

运行容器

docker run --name dotnetapicontains -d -p 5002:5002 dotnetapi

--name设置容器名,-d 后台运行  -p设置容器与宿主机的端口映射 dotnetapi为镜像名

这里需要注意 :

1:-name dotnetapicontains 中的dotnetapicontains 是容器名字,可以根据项目决定

2:第一个5002 是容器里面的端口号,  第二个5002 是对外的端口号,需要注意对外的端口号 需要跟 core项目里面的代码配置的端口号一致。在如图:

3:docker run --name dotnetapicontains -d -p 5002:5002 dotnetapi  中的dotnetapi是镜像名称。就是上面操作构建镜像时取的名称,保持一致。

操作图片如下:

这时候我们已经看到dotnetapicontains容器已经存在,5002端口也已经对外开放

4、运行测试

我们在浏览器中测试已经运行成功


版权声明:本文为xulong5000原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。