Docker实战笔记-后记1

使用VS 2015发布自己创建的asp.net core项目

首先在VS 2015中创建一个asp.net项目,按F5测试一下这个东西是否能运行】

Docker实战笔记-后记1_第1张图片

默认是53757端口运行的网站

首先先创建dockerfile ,可以使用vs2015的docker 工具

Docker实战笔记-后记1_第2张图片

使用vs 2015 tools for docker 工具,然后鼠标右键点击项目,添加,docker Support

Docker实战笔记-后记1_第3张图片

工具会自动帮我们配置相关的文件,比如Dockerfile

Docker实战笔记-后记1_第4张图片

FROM

FROM microsoft/aspnetcore:1.0.1

基于哪个镜像,这里是用的是aspnetcore官方镜像,1.0.1是tag版本号,如果不写,那么tag默认的是latest最后一个版本

ENTRYPOINT

ENTRYPOINT ["dotnet", "chaichai.dll"]

ENTRYPOINT 帮助你配置一个容器使之可执行化,如果你结合CMD命令和ENTRYPOINT命令,你可以从CMD命令中移除“application”而仅仅保留参数,参数将传递给ENTRYPOINT命令,

ARG

ARG source=.

ARG指令定义了一个变量,能让用户可以在构建期间使用docker build命令和其参数–build-arg =对这个变量赋值。如果用户指定了一个构建参数没有定义在Dockerfile的话,将输出错误。

WORKDIR

WORKDIR /app

WORKDIR命令用于设置CMD指明的命令的运行目录。

EXPOSE

EXPOSE 80

用来指定端口,使得容器内的应用可以通过端口和外界进行交互,镜像开启的是80端口,之后在宿主机和容器之间的映射关系,我们可以在docker run -p 80:80这里来设置

COPY

COPY $source .

COPY复制新文件或者目录从 并且添加到容器指定路径中 。用法同ADD,唯一的不同是不能指定远程文件 URLS

Dockerfile的命令远不止这些,项目需求的不同,在Dockerfile中内容也会有所不同。但是Dockerfile的确是我们在创建镜像文件中最重要的一个,他必须从 FROM 开始,指定一个基础镜像,然后在这镜像的基础上,将我们的项目部署发布。

我尝试过用VS 2015中Docker编译项目文件,但是出现了一些小问题,并且我还无法停止编译的过程。所以我选择在本地直接打包部署。之后我会尝试如果将本地的项目发布到我的云服务器上docker容器。

首先进入项目的目录中

dotnet publish
Docker实战笔记-后记1_第5张图片
docker build bin\Debug\netcoreapp1.0\publish -t mychai
Docker实战笔记-后记1_第6张图片

执行Dockerfile中的命令构建镜像

docker images

查看创建的镜像文件

一个FROM制定的基础镜像 aspnetcore 和我刚刚创建的一个 mychai 镜像文件。

docker run -it -d -p 85:80 mychai

将镜像文件mychai运行到容器中,并且设置宿主机的85端口映射容器的80端口(或许我说反了,这我不太能够确定)

docker ps

查看正在运行中的容器

从反馈的信息可以看到,他的端口映射情况和id号。打开浏览器,查看一下85端口

ok,没得问题了。但是值得注意的是,这里我是将docker 运行在linux中的

docker version
Docker实战笔记-后记1_第7张图片

猜测原因可能是因为基础镜像是linux的原因。

你可能感兴趣的:(Docker实战笔记-后记1)