码迷,mamicode.com
首页 > 其他好文 > 详细

Dockerfile初探

时间:2016-02-09 13:34:02      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

git上的asp.net samples工程已经写好了docker file,内容是如下

?

//任何dockersfile都要以FORM开头,约定是用大写.

FROM microsoft/aspnet:1.0.0-rc1-update1

?

COPY . /app

WORKDIR /app

调用dnu的restore从nuget上获取最新的环境,由于asp.net core已经完全脱离GAC,所以每个项目相当于都要携带一整套的运行环境.而使用dnu的restore就是微软提供的回复整个运行环境的方法.前提是必须要联网别且可以访问nuget.

RUN ["dnu", "restore"]

?

开放5004,因为需要将改端口映射到主机上,docker的最佳做法是不要使用常规端口

EXPOSE 5004

ENTRYPOINT每个dockerfile只能有一个,作为环境启动时的进程,由于docker是单进程的,所以当制订了cmd或entrypoint后就只能运行着一个进城了.

ENTRYPOINT ["dnx", "-p", "project.json", "web"]

?

?

nuget.config的feed地址最好换成v3的,不然会出现time out的情况.

?<?xml version="1.0" encoding="utf-8"?>

<configuration>

? <packageSources>

? ? <clear />

? ??<add key="NuGetorg" value="https://api.nuget.org/v3/index.json" />

? ? <add key="AspNetRC1" value="https://api.nuget.org/v3/index.json" />

? </packageSources>

</configuration>

?

搞定后docker images可以看到新build的镜像.接下来需要运行这个镜像为container

docker run是非常重要的命令,决定了很多东西.-d参数后台运行.

如果在docker run 后面追加-d=true或者-d,则containter将会运行在后台模式(Detached mode)。此时所有I/O数据只能通过网络资源或者共享卷组来进行交互。因为container不再监听你执行docker run的这个终端命令行窗口。但你可以通过执行docker attach 来重新挂载这个container里面。需要注意的时, 如果你选择执行-d使container进入后台模式,那么将无法配合"--rm"参数。

?

只有第一次将image转换为container的时候才使用run,启动一个现有的container要使用docker start .如果将image运行成container时候没有制定--name参数,docker会生成一个随机的名字,这是最好使用docker rename来进行改名,

Dockerfile初探

标签:

原文地址:http://www.cnblogs.com/winsonxu/p/5185514.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!