Asp.Net 코어 도커에 배포 무엇을 연습 (.NET 코어 2.2 기준)
첫째, 준비 작업 :
1. 버추얼에게 CentOS의 시스템을 사용하여 가상 머신을 생성하고 고정 표시기 및 정력을 설치
2 포트 (이후, 아래에 필수) 구성
창 간행물 (또한 리눅스에 게시 할 수있다)의 구성, 패키지 (내 경로는 리눅스 가상 머신에 출시 될 때 3. 웹 사이트에 게시 패키지 (기본 Asp.Net 코어 MVC 내가 사용)을 준비합니다 / 루트 / 루트 / DefaultHttp / 게시)
4. 일반 패키지 (이전 버전, 업데이트 할 sudo는 냠 업데이트 명령을 사용해야 할 경우 선택 사항, 리눅스 .NET의 핵심 SDK를 설치해야합니다) 여부를 방출 시험
DOTNET / DefaultHttp.dll을 게시
도 표시 정상적인
(: / 루트 / 루트 / DefaultHttp /, 즉, 폴더 및 게시 동일한 수준의 경로), 및 파일에 다음 코드 5. Dockfile 파일을 만듭니다.
Mcr.microsoft.com/dotnet/core/aspnet:2.2에서 WORKDIR이 / 앱 5000에 노출 정상적인 상황에서이 #이 열어야합니다 (80)에 노출 당신이 HTTPS를 사용하는 경우 #을, 포트 443를 엽니 다 기억하지만, 일반적으로하지 않습니다 443 #EXPOSE / / 앱 게시 COPY를 [의 EntryPoint를 "DOTNET", "DefaultHttp.dll"]
지금까지 준비가 완료됩니다.
둘째, 미러를 생성
1. 전환합니다 / 루트 / 루트 / DefaultHttp /
CD 루트 / DefaultHttp /
2. 执行以下命令,使用Dockerfile创建镜像(镜像名称为:firsthttp/default)
docker build -t firsthttp/default .
3. 执行docker images 命令查看生成的镜像
三、运行容器
1. 执行以下命令,运行容器(linux虚拟机的8010端口映射docker容器的80端口)
docker run -d -p 8010:80 -p 5000:5000 --name first firsthttp/default
2. 查看运行中的容器
docker ps
3. 查看容器日志
docker logs -f ef5d4c3870f1
为什么需要这个步骤?
查看容器运行的日志信息,防止发生错误,也可以知道容器开放的端口(这里是80,映射到linux虚拟机是8010端口,映射到主机也是8010端口(第一步的准备工作中有))
4. 在linux虚拟机查看结果,执行以下命令
curl http://localhost:8010
5. 在主机访问
至此,部署完成。
四、删除容器和镜像
#删除容器 docker rm 容器ID #删除镜像 docker rmi firsthttp/default
五、总结:
1. Docker容器对外发布的是80端口(需要使用docker logs命令查看)
2. 执行docker run 命令运行容器时,可以添加 -v 参数,映射指定的数据卷(这里是publish文件夹),下次更新程序时,会自动更新到docker,只需要重启docker即可(docker restart firsthttp/default)