在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
用VS2017 建立了 DotNet Core 2.2 的网站后,如何转移到 Docker 下运行? 下面分两种方式来实践: 1、直接手动命今行,将本机目录映射进Docker,运行网站。2、制作 Image ,再启动 Docker 运行。
一、将本机目录映射进Docker,运行网站fil 1. vs中建立ASP.NET CORE网站,类名为WebApplication3. (在创建时,可以勾选上 Docker 。好处是会自动生成 Dockerfile 文件,方便后面抄写命令。) 2. 发布到 e:/app 下。(随便建的发布目录) 3. 先在本地CMD命令行测试一下是否成功,cd e:\app, 再运行docnet WebApplication3.dll 4. 浏览器输入http://localhost:5000 可以访问网站 5. 退出命令行工具,开始进行docker镜像部署,前提是先装好docker,如果映射本地端口是80则记得先把IIS停了(如果你装了IIS的话) 6. 在命令行上先安装 DotNetCore 运行环境:Docker pull microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803 和 Docker pull microsoft/dotnet:2.2-sdk-nanoserver-1803 这两个命令行的具本内容,可以在工程自动生成的 Dockerfile 中找到。 如果遇到错误:image operating system "windows" cannot be used on this platform 请将 Docker 切换到windows 模式。
7. 命令行CMD中输入docker命令 docker run -p 8001:80 -v e:/app:c:/wwwroot -w /wwwroot microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803 dotnet WebApplication3.dll 解释下上面的命令:运行docker容器,名字叫microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803,这是微软官方的asp.net core镜像,映射本地端口8001到容器内的80端口,把本地目录e:/app 映射为容器里的 C:/wwwroot 目录 , 把容器内的工作目录 设置为 /wwwroot,容器运行起来后再运行命令 dotnet /wwwroot/WebApplication3.dll 请留意 -v 后面目录的写法。 8.在浏览器中输入http://localhost:8001 应该就可以访问网站了,哪怕在命令行中按ctrl+c退出,但是实际上docker容器也是正在运行中,输入命令docker ps 可以看到正在运行的容器。
二、网站制作 Image ,再启动 Docker 运行 1. 在 e:/app 目录下,创建 Dockerfile 文件 FROM microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803 EXPOSE 80 EXPOSE 443 FROM microsoft/dotnet:2.2-sdk-nanoserver-1803 COPY . . ENTRYPOINT ["dotnet", "WebApplication3.dll"]
2. 在命令行中输入 “docker build -t web3 . ” 创建镜像文件 3. 通过 docker images 可以查看到新建的 web3 镜像。 4. 启动镜像中的网站 docker run --name myWeb -p 9001:80 -d web3 其中 -d 是后台运行的意思。输出一串编码,表示已经运行了。
5. 在浏览器中输入http://localhost:9001 应该就可以访问网站了。 6. 常用调试命令 docker ps 列出当前正在运行的 container , 还有 docker logs <container-id> 查看程序运行的log信息。 删除 container 和 删除 image 也常用到。
三、参考文章 了解用于 Linux 和 Windows 容器的 Docker “容器主机”与“容器操作系统” ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署) |
请发表评论