Docker实战笔记-后记1

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

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

默认是53757端口运行的网站

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

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

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

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 build bin\Debug\netcoreapp1.0\publish -t mychai

执行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

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

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 6,969评论 0 118
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 11,793评论 17 145
  • docker基本概念 1. Image Definition 镜像 Image 就是一堆只读层 read-only...
    慢清尘阅读 4,910评论 1 15
  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 770评论 0 7
  • (此文送给那些被人渣伤过的姑娘) 往常这样的文章开头就会灌鸡汤,但是我认为与其把你安慰好了看故事不如让你看清事...
    甜心兒阅读 71评论 1 0