使用docker部署Asp.net core web应用程序

拉取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

我们可以执行下面的命令基于该镜像创建一个容器,并进入该容器:

[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 /dockertest
COPY ./PublishOutput .
EXPOSE 8080
CMD ["dotnet", "Docker.Web.dll"]

对上面五行代码做下说明:

FROM表示新镜像所依赖的基础镜像。

WORKDIR表示你的asp.net core web应用放在容器的哪个目录,这里是/dockertest目录,没有会自动创建

COPY表示拷贝当前系统下的哪个目录,这里是PublishOutput目录

EXPOSE表示暴露出来的端口号,和容器的端口号对应。这里默认是80。

CMD表示执行的命令,即运行我们自己的asp.net core web程序。

想办法将你的asp.net core web发布程序拷贝到centos系统的/tmp临时目录

2.创建镜像

[root@localhost tmp]# docker build -t mycore .

后面的英文符号“.”不能去掉,mycore表示你的镜像名称。如果出现Step1-Step5,则表示镜像创建成功。

再次查看所有镜像

[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

在浏览器中输入 http://192.168.84.137:8080/

原文地址:https://www.cnblogs.com/dragon-L/p/9287562.html