您的位置:首页 > 运维架构 > Docker

dockerfile_instructions(指令)

2015-06-03 16:08 736 查看
dockerfile 指令

1、FROM:指定创建image的base image

推荐使用Debian image仓库中的image

2、RUN:在base image中运行指令,一般用于在base image中安装程序,对于apt-get 推荐使用

RUN apt-get update && apt-get install -y \

    aufs-tools \

    automake \

    btrfs-tools \

    build-essential \

    curl \

    dpkg-sig \

    git \

    iptables \

    libapparmor-dev \

    libcap-dev \

    libsqlite3-dev \

    lxc=1.0* \

    mercurial \

    parallel \

    reprepro \

    ruby1.9.1 \

    ruby1.9.1-dev \

    s3cmd=1.1.0*

3、CMD:该指令用于运行image中的software,CMD [“executable”, “param1”, “param2”…],比如运行CMD ["apache2","-DFOREGROUND"]

4、EXPOSE:该指令表示容器中进行监听的ports,一般常用的服务使用常用的port,比如Apache web server 使用EXPOSE 80, MongoDB 使用EXPOSE 27017

5、ENV:为了使新的software运行,可以使用该指令来设置环境变量。

     例如,可以设置ENV PATH /usr/local/nginx/bin:$PATH 可以保证CMD [“nginx”]可以运行

6、ADD和COPY:ADD与COPY的功能相似,COPY对用户来说更透明一些。COPY只支持container中local files的copying。ADD还有其他一些特性,可以从local tar文件获取以及从remote URL获得文件,

  例如 ADD rootfs.tar.xz /.

格式:

COPY <src>... <dest>

COPY ["<src>"... "<dest>"]注意空格

ADD <src>... <dest>

ADD ["<src>"... "<dest>"]注意空格

  不建议使用ADD指令从remote URL获取文件,可以使用curl和wget替代它,例如:

ADD http://example.com/big.tar.xz /usr/src/things/

RUN tar -xJf /usr/src/things/big.tar.xz -C /usr/src/things

RUN make -C /usr/src/things all

可以使用

RUN mkdir -p /usr/src/things \

    && curl -SL http://example.com/big.tar.gz \

    | tar -xJC /usr/src/things \

    && make -C /usr/src/things all

替换。

ENTRYPOINT:为image设置默认的命令

VOLUME:

VOLUME ["/data"]

    在容器中创建volume目录

USER:允许以非root用户在container中执行操作

WORKDIR:容器中的工作目录

NOBUILD
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: