Dockerfile由一行行命令语句组成,并支持以#开头的注释行。
Dockerfile一般由4部分组成:基础镜像、维护者、镜像操作指令、容器启动指令
FROM ubuntu
MAINTAINER docker_user [email protected]
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >> /etc/apt/sources.list
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
CMD /usr/sbin/nginx
每执行一条RUN指令,镜像就会添加新的一层,并提交。而CMD命令指定运行容器时的操作命令。
编写完Dockerfile之后,可以通过docker build
命令创建镜像。
一般建议将Dockerfile放置在空目录,有时也会通过.dockerignore文件让Docker忽略某些目录和文件。
如果要指定镜像的标签信息,可以使用-t选项。
docker build -t build_repo/first_image /tmp/docker_builder/
定义Nginx的Dockerfile
# Nginx
#
# VERSION 0.0.1
FROM ubuntu
MAINTAINER Victor Vieux <[email protected]>
RUN apt-get update && apt-get install -y inotify-tools nginx apache2 openssh-server
定义firefox的Dockerfile
基于ubuntu安装firefox和vnc
# Firefox over VNC
#
# VERSION 0.3
FROM ubuntu
RUN apt-get update && apt-get install -y xllvnc xvfb firefox
RUN mkdir /.vnc
RUN xllvnc -storepasswd 1234 ~/.vnc/passwd
RUN bash -c 'echo "firefox" >> /.bashrc'
EXPOSE 5900
CMD ["xllvnc","-forever","-usepw","-create"]