本篇主要讲解在Docker容器中运行.Net Framework控制台应用程序的详细步骤。算是Docker容器的入门示例。
生成.net Framework控制台应用程序
打开VS创建一个Console Application,如下图Image-1所示:
打开Program.cs,在main函数中写入一行代码,在控制台输出一条消息,如下图Image-2所示:
运行控制台程序得到如下输出结果,会输出一条信息,和当前机器的computer name,如下图Image-3所示:
添加Dockerfile文件
在添加Dockerfile文件之前让我们简单了解一下Dockerfile文件的作用。Dockerfile是一个文本文件,包含用户可以在命令行上调用的所有命令来创建一个Image,他是Docker daemon在创建image时调用的命令列表。Dockerfile包含了Docker运行应用程序所需的所有信息,要运行的基本Docker Image,项目代码的位置,它所具有的任何依赖关系以及在启动时要运行的命令。用一句话来总结就是:Docker daemon通过读取dockerfile中的内容来创建镜像(Image)。
右键工程添加Dockerfile文件(这块大家一定要注意,添加的Dockerfile文件一定不要有任何后缀名!!!)
在Dockerfile文件中我们添加如下三行命令
(1). FROM microsoft/windowsservercore
通过FROM指令来指定我们所要使用的基本镜像
(2). ADD bin/Release/ /
通过ADD指令我们将build的应用程序添加到容器的跟文件夹中
(3). ENTRYPOINT HelloDocker.exe
通过ENTRYPOINT指令我们指定在容器启动时要运行的应用程序。
创建镜像(Image)
打开cmd命令行工具,进入到Dockerfile所在的文件夹,键入如下命令:
docker build -t hellodocker:v1 . 如下图Image-4所示:
docker通过build指令来创建镜像(Image), build 指令后的-t 表示的是指定当前Image的Tag,大家可以理解成Image的Name,镜像名称冒号后面的v1大家可以理解成当前Image的版本号,如果不指定的话默认会为latest,最后的. 表示的是Dockfile所在的当前目录。上面的指令可以理解成基于Dockerfile创建一个v1版本的名为hellodocker的镜像。执行该命令会得到如下图Image-5所示的结果:
截图中显示了Dockerfile中我们所写的三个指令的执行情况,最后会提示你Image创建成功。如果大家是第一次执行FROM microsoft/windowsservercore指令,docker daemon会去docker registry中拉取该基镜像,这个过程相当于下载该镜像到本地,执行起来会慢一些,大家不要着急。
我们通过docker images指令来查看创建的镜像,如下图Image-6所示:
运行容器
通过指令docker run --name hellodockercontainer hellodocker:v1 来运行容器,结果如图Image-7所示:
该指令的意思是基于hellodocker:v1镜像来运行一个名为hellodockercontainer的容器。有一个细节大家需要注意一下就是在本机运行时输出的Machine Name是机器的computer name,而在容器中运行时输出的Machine name为容器的ID。我们可以通过指令docker ps -a来查看已经创建的容器,如图Image-8所示:
以上便完成了容器化.NET Framework控制台应用程序,希望这个简单的例子能帮助大家了解docker常用的一些指令,docker中提供了很多指令,大家可以通过docker --help来进行查看,同时也可以访问docker的官方网站进行进一步的指令学习,官方网站地址:
下一篇(Docker容器中运行ASP.Net MVC应用程序)
所有评论(0)