本篇主要讲解在Docker容器中运行.Net Framework控制台应用程序的详细步骤。算是Docker容器的入门示例。

生成.net Framework控制台应用程序

打开VS创建一个Console Application,如下图Image-1所示:

Image-1

打开Program.cs,在main函数中写入一行代码,在控制台输出一条消息,如下图Image-2所示:

Image-2

运行控制台程序得到如下输出结果,会输出一条信息,和当前机器的computer name,如下图Image-3所示:

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所示:

Image-4

docker通过build指令来创建镜像(Image), build 指令后的-t 表示的是指定当前Image的Tag,大家可以理解成Image的Name,镜像名称冒号后面的v1大家可以理解成当前Image的版本号,如果不指定的话默认会为latest,最后的. 表示的是Dockfile所在的当前目录。上面的指令可以理解成基于Dockerfile创建一个v1版本的名为hellodocker的镜像。执行该命令会得到如下图Image-5所示的结果:

Image-5

截图中显示了Dockerfile中我们所写的三个指令的执行情况,最后会提示你Image创建成功。如果大家是第一次执行FROM microsoft/windowsservercore指令,docker daemon会去docker registry中拉取该基镜像,这个过程相当于下载该镜像到本地,执行起来会慢一些,大家不要着急。

我们通过docker images指令来查看创建的镜像,如下图Image-6所示:

Image-6

运行容器

通过指令docker run --name hellodockercontainer hellodocker:v1 来运行容器,结果如图Image-7所示:

Image-7

该指令的意思是基于hellodocker:v1镜像来运行一个名为hellodockercontainer的容器。有一个细节大家需要注意一下就是在本机运行时输出的Machine Name是机器的computer name,而在容器中运行时输出的Machine name为容器的ID。我们可以通过指令docker ps -a来查看已经创建的容器,如图Image-8所示:

Image-8

以上便完成了容器化.NET Framework控制台应用程序,希望这个简单的例子能帮助大家了解docker常用的一些指令,docker中提供了很多指令,大家可以通过docker --help来进行查看,同时也可以访问docker的官方网站进行进一步的指令学习,官方网站地址:

docs.docker.com/engine/refe…


上一篇(Docker CE在Windows系统中的安装)

下一篇(Docker容器中运行ASP.Net MVC应用程序)


转载于:https://juejin.im/post/5cbd83746fb9a0324f178fb0

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐