docker—使用dockerfile编写haproxy

dockerfile常用指令:

FROM:指定base镜像;如果本地有从本地调取,如果本地不存在会从远程仓库下载。
MAINTAINER:设置镜像的作者,比如用户邮箱等。
COPY:把文件从build context复制到镜像。支持两种形式:COPY src dest和COPY ["src","dest"]
    src必须指定build context中的文件或目录。
ADD:用法和COPY类似,不同的是src可以是归档压缩文件,文件会被自动解压到dest,
   也可以自动下载URL并拷贝到镜像:
   ADD html.tar /var/www           ADD http://ip/html.tar/var/www
ENV:设置环境变量,变量可以被后续的指令使用。 ENV HOSTNAME server1.example.com
EXPOSE:如果容器中运行应用服务,可以把服务端口暴露出去。 EXPOSE 80
VOLUME:申明数据卷,通常指定的是应用的数据挂载点。 VOLUME ["/var/www/html"]
WORKDIR:为RUN、CMD、ENTRYPOINT、ADD和COPY指令设置镜像中的当前工作目录,
                    如果目录不存在会自动创建。
RUN:在容器中运行命令并创建新的镜像层,常用于安装软件包。 RUN yum install -y vim
CMD:用于设置容器启动后执行的命令,会被docker run后面的命令行覆盖。
ENTRYPOINT:用于设置容器启动后执行的命令,不会被忽略,一定会被执行。
           docker run后面的参数可以传递给ENTRYPOINT指令当作参数。
           Dockerfile中只能指定一个ENTRYPOINT,如果指定了多个,只有最后一个有效。
           shell格式底层会调用/bin/sh -c来执行命令,可以解析变量,而exec格式不会。
           FROM busybox      【shell格式】            FROM busybox    【exec格式】
           ENV name world                                       ENV name world
           ENTRYPOINT echo "hello,$name"         ENTRYPOINT ["/bin/echo","hello,$name"]
           需要改写为ENTRYPOINT ["/bin/sh","-c","echo hello,$name"]exec格式时,ENTRYPOINT可以通过CMD提供额外参数,CMD的额外参数可以在容器启动时动态替换。
           在shell格式时,ENTRYPOINT会忽略任何CMD或docker run提供的参数。
           FROM busybox
           ENTRYPOINT ["/bin/echo","hello"]
           CMD ["world"]    【官方推荐使用exec格式】

实例:

结构查看:
[root@localhost ~]# tree /opt/haproxy/
/opt/haproxy/
├── Dockerfile
└── files
    ├── haproxy-2.4.0.tar.gz
    ├── haproxy.cfg
    ├── install.sh
    └── start.sh

1 directory, 5 files

[root@localhost ~]# tree test/
test/
├── html1
│   └── index.html
└── html2
    └── index.html

2 directories, 2 files

[root@localhost ~]# mkdir -p  /opt/haproxy/{conf,files}/
[root@localhost ~]# cd /opt/haproxy/
[root@localhost haproxy]# touch Dockerfile
编写Dockerfile
[root@localhost haproxy]# vim Dockerfile 
[root@localhost haproxy]# cat Dockerfile 
#基础镜像
FROM centos

#作者信息
LABEL MAINTAINER "sean 1163582076@qq.com"

#环境变量
ENV version 2.4.0

#传输文件
COPY files/haproxy-${
   VERSION}.tar.gz  /usr/src
COPY files/haproxy.cfg  /usr/local/haproxy/conf/haproxy.cfg
ADD files/start.sh  /scripts/
COPY files/install.sh /scripts/

#安装
RUN ["/bin/bash","-c",
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值