Dockerfile包含创建镜像所需要的全部指令。基于在Dockerfile中的指令,我们可以使用Docker build命令来创建镜像。通过减少镜像和容器的创建过程来简化部署
所有Dockerfile都必须以FROM命令开始。 FROM命令会指定镜像基于哪个基础镜像创建,接下来的命令也会基于这个基础镜像
序号 | 指令 | 简介 |
1 | FROM ubuntu | 新的镜像将基于Ubuntu的镜像来构建 |
2 | MAINTAINER <author name> | 设置该镜像的作者 |
3 | RUN 《command》 | 在shell或者exec的环境下执行的命令 RUN指令会在新创建的镜像上添加新的层面 |
4 | ADD 《src》 《destination》 | 复制文件指令 destination是容器内的路径。source可以是URL或者是启动配置上下文中的一个文件 |
5 | CMD | 提供了容器默认的执行命令 Dockerfile只允许使用一次CMD指令 |
6 | EXPOSE <port>; | 指定容器在运行时监听的端口 |
7 | ENTRYPOINT | 配置给容器一个可执行的命令,这意味着在每次使用镜像创建容器时一个特定的应用程序可以被设置为默认程序 Docker只允许一个ENTRYPOINT |
8 | WORKDIR | 指定RUN、CMD与ENTRYPOINT命令的工作目录 |
9 | ENV <key> <value> | 设置环境变量。它们使用键值对 |
10 | USER <uid> | 镜像正在运行时设置一个UID |
11 | VOLUME | 授权访问从容器内到主机上的目录 |
下面是依据centos:5.11搭建tfs
vim Dockerfile
FROM centos:5.11
MAINTAINER reymont "reymont.li@foxmail.com"
RUN yum -y install automake libtool libreadline-dev zlib1g-dev uuid-dev libgoogle-perftools-dev gcc-c++ wget
#安装5.5的mysql
RUN wget http://centos.ustc.edu.cn/epel/5/x86_64/epel-release-5-4.noarch.rpm
RUN wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/remi-release-5.9-1.el5.remi.noarch.rpm
RUN rpm -ivh *.rpm
RUN yum -y --enablerepo=remi install mysql mysql-server mysql.x86_64 mysql-devel.x86_64
RUN yum -y install make automake zlib-devel readline-devel ncurses-devel.x86_64 ncurses.x86_64 subversion
RUN svn checkout -r 18 http://code.taobao.org/svn/tb-common-utils/trunk/ ~/tb-common-utils
RUN export TBLIB_ROOT=/usr/local/tb/lib && cd ~/tb-common-utils/ && chmod +x *.sh && ./build.sh
RUN svn checkout http://code.taobao.org/svn/tfs/tags/release-2.2.10 ~/tfs-2.2.10
RUN export TBLIB_ROOT=/usr/local/tb/lib && cd ~/tfs-2.2.10/ && chmod +x *.sh && ./build.sh init && ./configure --prefix=/usr/local/tfs --without-tcmalloc && make && make install
编译
docker build -t reymont/centos-tfs .
参考:
Docker入门教程(三)Dockerfile - DockOne.io
http://dockone.io/article/103
Docker学习笔记之二,基于Dockerfile搭建JAVA Tomcat运行环境 - 聂永的博客 - BlogJava
http://www.blogjava.net/yongboy/archive/2013/12/16/407643.html
CentOS 5下安装tfs并使用Nginx做访问_服务器应用_Linux公社-Linux系统门户网站
http://www.linuxidc.com/Linux/2014-07/104896.htm
tfs - / - Taocode
http://code.taobao.org/p/tfs/src/