dockerfile_instructions(指令)

来源:互联网 发布:python ascii转utf8 编辑:程序博客网 时间:2024/04/26 06:36
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

0 0
原创粉丝点击