Docker部署IIS+asp.net网站操作步骤说明
(以下操作在windows10下完成)
- 制作Dockerfile文件
这个可以借助visual studio来生成。生成后修改其内容为如下:
FROM microsoft/aspnet:4.7.2-windowsservercore-1803
SHELL ["powershell", "-command"]
#引入IIS配置模块
RUN Import-Module IISAdministration; \
Import-Module WebAdministration; \
Set-ItemProperty -Path IIS:\AppPools\DefaultAppPool -Name "processModel.loadUserProfile" -Value true;
WORKDIR /inetpub/wwwroot
COPY Publish/. ./
*dockerfile命令解释
FROM指令
FROM指令必须指定,且需要在Dockerfile其他指令的前面。指定的基础指令可以是官方远程仓库中的,也可以是位于本地仓库。后续的指令都依赖于该指令指定的image。 在同一个Dockerfile中建立多个镜像时,可以使用多个FROM指令。
SHELL指令
SHELL指令允许覆盖用于shell形式的命令的默认shell 。Linux上的默认shell是["/bin/sh", “-c”],而在Windows上[“cmd”, “/S”, “/C”]。
RUN指令
RUN <command> 在shell终端中运行命令,在Linux中默认是/bin/sh –c,在Windows中默认是powersell
WORKDIR指令
格式为: WORKDIR /path/to/workdir
切换⽬录指令,类似于cd命令,对RUN、CMD、ENTRYPOINT⽣效。
COPY指令
复制本地的src到容器的dest, 和ADD指令相似,但是COPY不支持URL和压缩包。
- 生成
将发布好的网站文件复制到准备用作docker制作的文件夹下的Publish文件夹下,即Dockerfile中COPY命令后指定的源路径。如图:
在cmd窗口运行命令:
docker build –t 大名/小名:标签 .
*注意后面的 . 这个“.”表示当前路径,构建的时候要保证jar包或是publish文件夹和Dockerfile文件在同一个文件夹下。大名、小名、标签根据自己的业务场景制定。
--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
生成成功后可以在docker desktop中查看生成的镜像。
点击右侧的 “RUN” 按钮启动容器。启动配置参数如下图:
启动后的容器如下图:
点击如图所示的按钮,即可以在浏览器中打开网站,直观的就可以看到打包的成功与否。
- 导出镜像文件
在cmd窗口输入: docker images 可以看到所有的在运行的镜像。如图:
执行命令 docker save fd973c356bc5 > D:\iis_docker.tar
- 生产环境部署
将导入的tar文件复制到生产环境机器上,然后执行如下命令:
docker load < 路径\文件名
可以依据具体使用场景来选择命令
- 若是只想备份images,使用save、load即可
- 若是在启动容器后,容器内容有变化,需要备份,则使用export、import
至此整个操作完成。