如何将您的应用容器化(约3分钟)

docker是通过读取Dockerfile文件的指令来生成自定义镜像的。本章我们将一个示例项目构建为镜像,以此来学习如何实现正确的 Dockerfile 并在 DaoCloud 执行构建。

1 新建项目

我们为您准备了示例代码仓库, 如果您是 github 用户请 fork DaoCloud/dao-2048, coding 用户请 fork DaoCloud/dao-2048

点击“项目" -> “创建新项目"。设置完代码源,点击“流程定义"->“编辑任务"

提示

“Dockerfile”选项,这是用来指定使用哪个Dockerfile进行构建,因为示例代码中并没有 Dockerfile文件,因此我们点击,并选择“创建云端 Dockerfile”,此时会在DaoCloud上创建一个Dockerfile文件用来构建镜像,可以在此基础上进行修改

2 填写Dockerfile

我们在Dockerfile中填入以下内容:

#FROM 指令指定基础镜像
#比较常用的基础镜像有ubuntu,centos。这里使用了一个极小的基础镜像alpine
FROM alpine:latest
  
#MAINTAINER指令用于将镜像制作者相关的信息写入到镜像中
#您可以将您的信息填入name以及email
MAINTAINER name <email>
  
#RUN指令可以运行任何被基础image支持的命令,就像在操作系统上直接执行命令一样(如果使用ubuntu为基础镜像,这里应该用apt-get 命令安装)
#安装nginx
RUN apk --update add nginx
  
#配置Nginx,并设置在标准输出流输出日志(这样执行容器时才会看到日志)
RUN sed -i "s#root   html;#root   /usr/share/nginx/html;#g" /etc/nginx/nginx.conf
  
#Nginx日志输出到文件
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
    && ln -sf /dev/stderr /var/log/nginx/error.log
  
#COPY指令复制主机的文件到镜像中 (在这里当前路径就是repo根目录)
#将2048项目的所有文件加入到Nginx静态资源目录里
COPY . /usr/share/nginx/html
  
#EXPOSE:指定容器监听的端口
EXPOSE 80
  
#CMD指令,容器启动时执行的命令
#启动Nginx并使其保持在前台运行
#CMD一般是保持运行的前台命令,命令退出时容器也会退出
CMD ["nginx", "-g", "pid /tmp/nginx.pid; daemon off;"]

写入结果如图:

点击“保存”

温馨提示:最后一定要记得点击“保存 ”,使设置生效。

3 构建您的项目

点击手动触发,选择master分支,点击“确定”,在“执行记录”可以查到执行成功,您的项目就被打包进入镜像啦!

恭喜您完成了教程!您已掌握了在 DaoCloud 上使用dockerfile进行 docker 镜像构建的方法!

更多:

详细的dockerfile结构与写法

云端dockerfile

使用镜像构建与持续集成

写给开发者的例子(示例代码)