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
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
- dockerfile_instructions(指令)
- 指令
- “%@ %”指令
- #指令
- 指令
- 指令
- 指令
- 指令
- 指令
- 指令
- 指令
- 指令
- 指令
- 指令
- @Import指令:导入指令
- vi指令 vim指令
- arm指令移位指令
- JSP指令--Page指令
- DMA解析
- PressGrid 多用户墙贴(花瓣) WordPress主题[更新至v3.1]
- Winform 获取Win7 UAC 管理员权限
- go安装
- Fix for Cannot recover key error in JAVA
- dockerfile_instructions(指令)
- #if DEBUG的妙用
- Sofa OpnPress wordpress社交信息发布平台主题[更新至v2.0]
- Ubuntu12.04 安装jdk
- 复合索引和多个单列索引的效率比较
- java.lang.OutOfMemoryError: Java heap space
- 基本SQL语句学习1.0
- #110 Balanced Binary Tree
- Python中__getitem__()和__setitem__()的使用实例