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
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
相关文章推荐
- docker创建自己的image
- 腾讯万台规模的Docker应用实践
- 分布式进阶(十三)Docker Container间实现数据共享
- 分布式进阶(十三)Docker Container间实现数据共享
- 如何在 Docker 容器中架设一个完整的 WordPress 站点
- 在VMware上安装Ubuntu14.04 , Docker
- 建立自己的私有docker(ssl&login auth)
- Docker多容器连接-以Nginx+PHP为例
- Docker安装及基本命令
- 使用boot2docker管理docker
- 如何在 Docker 容器之间设置网络
- docker_work_with_images
- docker_work_with_container
- docker_run_application
- 容器创建后,随意更改容器内启动脚本
- 在阿里云centos6.5系统上用docker搭建php环境的失败过程
- docker添加多网卡
- Docker生态系统系列之一:常用组件介绍
- Docker使用Link在容器之间建立连接
- docker常用命令