说明
使用Docker部署.Net Core 2.2,如无Docker环境查看搭建教程
- 环境:Centos 7、Docker-ce(19.03.12)
- .Net Core版本:2.2
步骤
- 创建.Net Core项目以及创建Dockerfile文件
- 发布项目并上传到虚拟机
- 使用docker编译项目
- Docker运行镜像
- 浏览器验证
详细步骤
1、右键项目添加Docker支持,并修改Docker文件
修改为最简单的 其他可以先移除
2、上传到虚拟机并执行编译
- 上传成功后有以下几个文件
[root@localhost docker_mvc]# ll
总用量 260
-rw-r--r--. 1 root root 105 8月 22 18:18 appsettings.json
-rw-r--r--. 1 root root 391 8月 22 18:18 Dockerfile
-rw-r--r--. 1 root root 235296 8月 22 18:18 Docker.TestMvc.deps.json
-rw-r--r--. 1 root root 7168 8月 22 18:18 Docker.TestMvc.dll
-rw-r--r--. 1 root root 1636 8月 22 18:18 Docker.TestMvc.pdb
-rw-r--r--. 1 root root 224 8月 22 18:18 Docker.TestMvc.runtimeconfig.json
-rw-r--r--. 1 root root 558 8月 22 18:18 web.config
- docker编译
docker build -t dockertestmvc .
dockertestmvc 为镜像名称 可自定义
docker images 查看编译成功的镜像 可以看到dockertestmvc 这个镜像
docker build 命令后面有个 .
切记表示当前目录
[root@localhost docker_mvc]# docker build -t dockertestmvc .
Sending build context to Docker daemon 251.9kB
Step 1/5 : FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
---> e7e3b238011c
Step 2/5 : WORKDIR /app
---> Running in 732887014cc6
Removing intermediate container 732887014cc6
---> c7eae96168d2
Step 3/5 : EXPOSE 5000
---> Running in 4906a346543d
Removing intermediate container 4906a346543d
---> cf4c8b169f94
Step 4/5 : COPY . /app
---> 0d63dbfdfdad
Step 5/5 : ENTRYPOINT ["dotnet", "Docker.TestMvc.dll"]
---> Running in 5bf8e0988178
Removing intermediate container 5bf8e0988178
---> f9cb68e0cd91
Successfully built f9cb68e0cd91
Successfully tagged dockertestmvc:latest
[root@localhost docker_mvc]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dockertestmvc latest f9cb68e0cd91 24 seconds ago 261MB
mcr.microsoft.com/dotnet/core/aspnet 2.2-stretch-slim e7e3b238011c 7 months ago 261MB
3、Docker运行镜像 并验证
- docker run 运行容器
docker run --name 容器名 -d -p 寄主机端口:容器端口(dockerfile里面暴露的端口) 镜像名
- docker ps 正在运行的容器 可以看到本机8000映射到了容器的80端口 浏览器访问本机8000端口即可验证成功
- docker logs 容器Id 可查看日志
[root@localhost docker_mvc]# docker run --name docker-test -d -p 8000:80 dockertestmvc
2b25e79756072af208b928d0170754eee0d98d514996dca5603ddf3b699af077
[root@localhost docker_mvc]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
27c09333e28c dockertestmvc "dotnet Docker.TestM…" 24 seconds ago Up 22 seconds 0.0.0.0:8000->80/tcp docker-test
[root@localhost docker_mvc]# docker logs 2b25e7975607
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
No XML encryptor configured. Key {23c83ac3-bc8d-4b42-83fe-4aa005e20e64} may be persisted to storage in unencrypted form.
Hosting environment: Production
Content root path: /app
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down.
- 浏览器验证
QA
1、若直接使用 mcr.microsoft.com 镜像编译时会很卡。查看教程搭建私有仓储