使用docker部署Asp.net core web应用程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用docker部署Asp.net core web应用程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3653字,纯文字阅读大概需要6分钟。
内容图文
原文:使用docker部署Asp.net core web应用程序要想参考本文做实验,可以参考上一篇文章,关于docker的简单操作,写的比较详细。
拉取aspnetcore最新docker镜像
aspnetcore的docker镜像在docker官网是有的,是由微软提供的。它的依赖镜像是microsoft/dotnet。通过访问网址:https://hub.docker.com/explore/,搜索关键字aspnetcore就会找到镜像。但是如果直接从官网拉取镜像,速度会比较慢。之前我们对docker镜像加速器做过设置,用的是阿里云的,所以以后拉取镜像都是从阿里云拉取的。
执行以下命令拉取aspnetcore最新镜像:
[root@localhost ~]# docker pull microsoft/aspnetcore
拉取成功后执行docker images命令,如果能看到aspnetcore镜像,则表示拉取成功。
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/microsoft/aspnetcore latest c4ca78cf9dca 2 weeks ago 325 MB
如果我们想拉取指定的aspnetcore版本,可使用如下命令:
[root@localhost ~]# docker pull microsoft/aspnetcore:1.0 [root@localhost ~]# docker pull microsoft/aspnetcore:2.0
我们可以执行下面的命令基于该镜像创建一个容器,并进入该容器:
[root@localhost ~]# docker run -it c4ca78cf9dca
执行下面的命令即可退出当前容器:
root@66095a66dce1:/# exit
制作自己的应用镜像
1.创建Dockerfile文件
我们先在临时目录创建Dockerfile,待会我们的asp.net core web应用也会放在临时目录。
[root@localhost ~]# cd /tmp [root@localhost tmp]# vi Dockerfile
将下面代码拷贝进去,保存并退出。
FROM docker.io/microsoft/aspnetcore WORKDIR /app COPY ./songlou . EXPOSE 8080 CMD ["dotnet", "SongLou.Web.dll"]
对上面五行代码做下说明:
FROM表示新镜像所依赖的基础镜像。
WORKDIR表示你的asp.net core web应用放在容器的哪个目录,这里是/app目录,没有会自动创建
COPY表示拷贝当前系统下的哪个目录,这里是songlou目录
EXPOSE表示暴露出来的端口号,和容器的端口号对应。这里默认是80。
CMD表示执行的命令,即运行我们自己的asp.net core web程序。
想办法将你的asp.net core web发布程序拷贝到centos系统的/tmp临时目录
2.创建镜像
[root@localhost tmp]# docker build -t mycore .
后面的英文符号“.”不能去掉,mycore表示你的镜像名称。如果出现Step1-Step5,则表示镜像创建成功。
Sending build context to Docker daemon 7.426 MB Step 1/5 : FROM docker.io/microsoft/aspnetcore ---> c4ca78cf9dca Step 2/5 : WORKDIR /app ---> Using cache ---> 1ddb7788a4a9 Step 3/5 : COPY ./songlou . ---> bfad39b69b61 Removing intermediate container c9170e38b598 Step 4/5 : EXPOSE 8080 ---> Running in 7b5381a9e64c ---> be22e6986e1d Removing intermediate container 7b5381a9e64c Step 5/5 : CMD dotnet SongLou.Web.dll ---> Running in 697cdaf9d864 ---> 44150b234924 Removing intermediate container 697cdaf9d864 Successfully built 44150b234924
再次查看所有镜像
[root@localhost tmp]# docker images
再次查看所有镜像,我们会看到:
REPOSITORY TAG IMAGE ID CREATED SIZE mycore latest 44150b234924 About a minute ago 332 MB docker.io/microsoft/aspnetcore latest c4ca78cf9dca 2 weeks ago 325 MB
除了我们从官网拉取的aspnetcore镜像,还有一个我们自己创建的镜像:mycore。
3.运行容器
[root@localhost tmp]# docker run --name mycore -p 8080:80 -d mycore
第一个mycore表示容器名称,第二个mycore表示镜像名称
执行后会出现新容器的ID:2859330db3a5c6113b0ccdf6e9d78e7e36ea17f6c4de495514c4ec8901ed9218
4.执行curl命令访问我们的网站
[root@localhost tmp]# curl http://localhost:8080
运行结果:
{"str":"test","environmen":null,"username":null,"password":null}
[root@localhost tmp]# curl http://192.168.1.160:8080
用IP访问看到的结果也是一样的:
{"str":"test","environmen":null,"username":null,"password":null}
或者是在windows操作系统里的浏览器地址栏输入:http://192.168.1.160:8080/看到的结果也是一样的。
至此大功告成。
5.进入容器
[root@localhost tmp]# docker exec -it mycore /bin/bash
exec命令可以进入docker容器,然后像使用centos操作系统一样。在里面进行操作。
参考文档:
https://hub.docker.com/r/microsoft/aspnetcore/
https://www.cnblogs.com/jjg0519/p/6743645.html
以后有时间会介绍如何将自己的镜像推送到阿里云的镜像仓库。
将自己的镜像推送到阿里云
参考之前的步骤重新创建一个镜像:1.制作dockerfile文件;2.准备发布程序
[root@localhost tmp]# docker build -t webapp .
运行docker images命令查看新镜像的image id
[root@localhost tmp]# docker images
Image id每次都不一样,我这次试验的值是:662ac0297c4f
登录阿里云
[root@localhost tmp]# docker login --username=[你的阿里云账号] registry.cn-hangzhou.aliyuncs.com
给镜像打上tag
[root@localhost tmp]#
docker tag 662ac0297c4f registry.cn-hangzhou.aliyuncs.com/songlou/webapp:1.0
推送镜像到阿里云
[root@localhost tmp]# docker push registry.cn-hangzhou.aliyuncs.com/songlou/webapp:1.0
特别注意每次测试,创建的镜像ID都是不同的。
registry.cn-hangzhou.aliyuncs.com表示域名
songlou表示命名空间
原文:https://www.cnblogs.com/lonelyxmas/p/10411800.html
内容总结
以上是互联网集市为您收集整理的使用docker部署Asp.net core web应用程序全部内容,希望文章能够帮你解决使用docker部署Asp.net core web应用程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。