Docker学习之Dockerfile

时间:2017-04-19作者:klpeng分类:Web服务器浏览:1538评论:0

这篇文章介绍一下Dockerfile的基本语法及简单示例:


Dockerfile的指令是忽略大小写的,但是命名约定使用大写,使用 # 作为注释。

所有Dockerfile都以FROM命令开始。语法如下:

FROM <image>   #或者 FROM <image>:<tag> 例如 FROM  centos6

在FROM命令之后,Dockerfile还有如下命令:

1. MAINTAINER:设置镜像创建者的信息。语法如下:

MAINTAINER <author name>


2. RUN:在shell或者exec的环境下执行的命令。语法如下2种:

RUN <command> 

RUN ["executable", "param1", "param2" ... ]


3. ADD:复制文件指令。它有两个参数<src>和<dest>。从<src>复制到容器的<dest>路径,语法如下

ADD <src> <dest>


4. CMD:容器启动时执行的指令。 Dockerfile只允许使用一次CMD指令。如果有多个只执行最后一个。 语法有如下3种:

CMD ["executable","param1","param2"]

CMD ["param1","param2"]

CMD command param1 param2


5. EXPOSE:指定容器在运行时监听的端口。语法如下:

EXPOSE <port>;


6. ENTRYPOINT:配置一个执行命令,类似于CMD,多个ENTRYPOINT只执行最后的ENTRYPOINT指令。语法如下:

ENTRYPOINT ["executable", "param1","param2"]

ENTRYPOINT command param1 param2


7. WORKDIR:指定工作目录。相当于cd,语法如下:

WORKDIR /path/to/workdir


8. ENV:设置环境变量。语法如下:

ENV <key> <value>


9. USER:设置启动容器的用户,默认root,语法如下:

USER <user>


10. VOLUME:指定挂载点,在容器关闭后,挂载点的数据不会丢失。语法如下:

VOLUME ["/data"]


下面来创建一个Dockerfile,将PHP项目打包docker镜像,apache+php

mkdir test
cd test
mkdir web
touch web/index.php
echo "<?php echo 'dockerfile test';?>" >> web/index.php
vim Dockerfile  #输入下面几行:

FROM php:5.6-apache

MAINTAINER <kl_peng@foxmail.com>

RUN rm -rf /var/www/html

ADD web /var/www/html

保存之后,运行:

docker build -t ligphp .   #把镜像命名成ligphp

成功之后来启动这个镜像

docker run --name ligphp -d -p 8088:80 ligphp
#用ligphp镜像启动一个容器并命名为ligphp,把宿主机的8088端口映射到容器的80端口

然后我们再浏览器输入http://192.168.1.8:8088,会输出我们之后index.php里面的内容。



原创文章如转载,请注明出处,本文首发于彭超的博客

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢