Dockerfile初探

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

 

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

FROM microsoft/aspnet:1.0.0-rc1-update1 docker

 

COPY . /app json

WORKDIR /app api

调用dnu的restore从nuget上获取最新的环境,因为asp.net core已经彻底脱离GAC,因此每一个项目至关于都要携带一整套的运行环境.而使用dnu的restore就是微软提供的回复整个运行环境的方法.前提是必需要联网别且能够访问nuget. 网络

RUN ["dnu", "restore"] app

 

开放5004,由于须要将改端口映射到主机上,docker的最佳作法是不要使用常规端口 asp.net

EXPOSE 5004 ui

ENTRYPOINT每一个dockerfile只能有一个,做为环境启动时的进程,因为docker是单进程的,因此当制订了cmd或entrypoint后就只能运行着一个进城了. spa

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来进行更名,

相关文章
相关标签/搜索