centos7安装docker详解和使用之.netcore的搭建和访问(三)

一,在前两篇文章,我们搭建好docker,现在我们怎么跑netcore项目呢?其实docker是有三层给镜像,默认镜像--极简Linux+CoreCLR---APS.NETCORE

1》我们先需要新建一个core的demo,这是一个默认的mvc项目,就只是添加了docker支持,如下图

 操作这个步骤会多了Dockerfile这个文件,文件内容默认就好

将Dockerfile这个文件复制到根目录

我们看看默认生成的Dockerfile是怎样的

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base  
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["DockerDemo/DockerDemo.csproj", "DockerDemo/"]
RUN dotnet restore "DockerDemo/DockerDemo.csproj"
COPY . .
WORKDIR "/src/DockerDemo"
RUN dotnet build "DockerDemo.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "DockerDemo.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerDemo.dll"]

我们来解析下命令的含义:

1》FROM:基础镜像 

2》WORKDIR:工作目录,类似于cd命令

3》EXPOSE 映射端口

4》COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源

5》RUN:构建镜像时执行的命令

6》#ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。

综上所得:dockerfile最总的命令就是:准备基础镜像--cope代码--编译---发布---dotnet

二,现在我们将整个项目文件复制到centos的文件夹下,在centos打包成镜像,我的文件目录

 三,执行打包逻辑

1》先去文件的目录下,执行以下命令

cd /root/DockerDemo

2》执行打包镜像命令,注意这里Dockerfile后面是有一个.(ps:点)的,这个点表示的意思是当前目录

docker build -t dockerdemo -f Dockerfile .

执行查看镜像命令

docker images

结果如下

3》生成容器实例

docker run -itd -p 8082:80 dockerdemo

成功结果

查看容器命令

docker ps -a

 这里的staus是up证明已经跑起来了,如果有问题,我们用查看日志的方式查看下异常

docker logs asa85b928196

4》测试下访问是否成功(ps:172.17.0.1是我虚拟机的ip,你可以用ip address命令查看Ip地址)

ip address

发现虚拟机ip和自己电脑访问ip

curl http://172.17.0.1:8002

如下返回了html

虚拟机浏览器访问地址

 主机访问IP地址:http://192.168.60.130:8082/

我们查看dotnet的信息

dotnet --info

5》删除所有容器(实例),因为刚刚发布了太多影响到我们查看

docker rm $(docker ps -aq)

 6》删除所有镜像

docker rmi -f $(docker images)
原文地址:https://www.cnblogs.com/May-day/p/13983079.html