dockerfile详解_Docker 你必须掌握的基础知识——Dockerfile详解

a2c98cf15366dcf75f1e5de9bf7df447.png

一、说明

Dockerfile文件是Docker容器的描述文件,当中包含一行行命令,每条指令用来构建一层,整个文件用来指导构建容器的顺序。

二、Dockerfile的关键字

1.关键字列表

eada9ee9b59494b999b37af154624da9.png

2. 行合并

Dockerfile 的指令每执行一次都会在 docker 上新建一层,能合并的尽量合并,如:

FROM centosRUN yum install wgetRUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"RUN tar -xvf redis.tar.gz# 以上执行会创建 3 层镜像。可简化为以下格式:FROM centosRUN yum install wget     && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"     && tar -xvf redis.tar.gz

3. run shell 格式:

RUN #  相当于在终端操作的 shell 命令。

4. run exec 格式:

RUN ["可执行文件", "参数1", "参数2"]# 例如:# RUN ["./test.php", "dev", "offline"] 相当于 RUN ./test.php dev offline

二、一个简单的Dockerfile说明

1. 准备

vim run.sh
#!/bin/bash/usr/local/apache2/bin/httpd -D FOREGROUND
# 新生成的镜像是基于sshd:dockerfile镜像FROM centos:centos7MAINTAINER xundh# 安装wgetRUN yum install -y wgetWORKDIR /usr/local/src# 下载并解压源码包RUN wget http://archive.apache.org/dist/httpd/httpd-2.4.41.tar.gzRUN tar -zxvf httpd-2.4.41.tar.gzWORKDIR httpd-2.4.41# 编译安装apacheRUN yum -y install epel-release.noarch && yum makecache fastRUN yum install -y gcc make apr-devel apr apr-util apr-util-devel pcre-develRUN ./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-soRUN makeRUN make install# 修改apache配置文件RUN sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/g' /usr/local/apache2/conf/httpd.conf# 启动apache服务RUN /usr/local/apache2/bin/httpd# 复制服务启动脚本并设置权限ADD run.sh /usr/local/sbin/run.shRUN chmod 755 /usr/local/sbin/run.sh# 开放80端口EXPOSE 80CMD ["/usr/local/sbin/run.sh"]

三、构建命令

docker build -t centos:test .# 启动一个容器docker run -p 80:80 -d centos:test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值