部署到 Linux 容器
部署到 Windows 容器
由于. net 本身就是运行在 Windows 平台的, 所以它与 Windows 容器也是更加适合, 你可以以 iis 镜像为基础, 去编写你的 Dockerfile 文件, 从而去构建你的. net 项目镜像.
两个现成的例子
.net console 程序
docker run --rm mcr.microsoft.com/dotnet/framework/samples:dotnetapp
.net web 程序
docker run -it --rm -p 8000:80 --name aspnet_sample mcr.microsoft.com/dotnet/framework/samples:aspnetapp
为自己项目添加一个 Dockerfile 构建镜像
- FROM microsoft/aspnet
- ARG source
- WORKDIR /inetpub/wwwroot
- COPY ${
- source:-obj/Docker/publish
- } .
参考:
部署到 Linux 容器
对于非. net core 的应用程序来说, 要想在 Linux 平台运行需要安装 mono 框架, 这是在 Linux 平台运行. net 程序的唯一方法, 那么如果想把. net 程序部署到 Linux 容器里, 也是一样的方法过程, 你需要构建一个安装有 mono 环境的镜像.
为自己的项目添加一个基于 mono 的 Dockerfile
制作一个 console App 的 Dockerfile 并运行
- FROM mono:latest
- RUN mono --version
- WORKDIR /App
- COPY ./bin/Debug/ .
- CMD [ "mono", "monoApp.exe" ]
打包镜像
- cd monoapp #Docfile 所在目录, 它一般在项目根目录
- docker build . -t monoapp
- docker run monoapp
执行结果
- MacBook-Pro-6:monoApp lind.zhang$ docker run monoapp
- Hello World!
- MacBook-Pro-6:monoApp lind.zhang$
制作一个. net Web 的 Dockerfile 并运行
前提: 我们的 Web 项目要想运行, 需要有一个像 IIS 一种的服务器组件, 在 Linux 里我们一般使用 jexus 来实现这个功能, 也就是说, 我们的 docker 镜像应该即有 mono 还要有 jexus 的集成, 这个镜像我们可以自己写, 也可以使用现成的镜像 azraelrabbit/monupw, 下面的 Dockerfile 是把一个 Web 项目 monoMvc 打包成一个镜像.
先把镜像拉到本地
docker pull azraelrabbit/monupw
部署的步骤
建立 Dockerfile 文件, 发布网站时应该带上
发布网站
进行发布后的地址
打包 docker build . -t 镜像名称
启动容器 docker run -d -p 8080:80 镜像名称
编写 Dockerfile 文件
- FROM azraelrabbit/monupw
- EXPOSE 80
- WORKDIR /data
- COPY ./bin/ .
启动你的容器, 对外访问用 8080 端口, 容器内部是 80 端口
- MacBook-Pro-6:monoMvc lind.zhang$ docker run -p 8080:80 monomvc
- Starting ... OK
来源: https://www.cnblogs.com/lori/p/10685107.html