Docker容器中Dockerfile的编写

Dockerfile常用命令

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 sevrer1.example.com
EXPOSE
如果容器中运行应用服务,可以把服务端口暴露出去:
EXPOSE 80
VOLUME
申明数据卷,通常指定的是应用的数据挂在点:
VOLUME ["/var/www/html"]
WORKDIR
为RUN、CMD、ENTRYPOINT、ADD和COPY指令设置镜像中的当前工
作目录,如果目录不存在会自动创建。
RUN
在容器中运行命令并创建新的镜像层,常用于安装软件包:
RUN yum install -y vim
CMD 与 ENTRYPOINT
这两个指令都是用于设置容器启动后执行的命令,但CMD会被
docker run后面的命令行覆盖,而ENTRYPOINT不会被忽略,一定会
被执行。
docker run后面的参数可以传递给ENTRYPOINT指令当作参数。
Dockerfile中只能指定一个ENTRYPOINT,如果指定了很多,只有最后
一个有效。

在这里插入图片描述

一.脚本下载httpd服务

1.导入镜像
[root@server1 ~]# cd /tmp/
[root@server1 tmp]# ls
[root@server1 tmp]# mkdir docker
[root@server1 tmp]# cd docker/
root@server1 docker]# ls
Dockerfile
[root@server1 ~]# docker load -i rhel7.tar 
e1f5733f050b: Loading layer  147.1MB/147.1MB
2.编写Dockerfile
[root@server1 docker]# ls
Dockerfile  dvd.repo
[root@server1 docker]# cat Dockerfile 
FROM rhel7
COPY dvd.repo /etc/yum.repos.d/dvd.repo		##配置yum源,文件在该目录下已经写好
RUN rpmdb --rebuilddb && yum install -y httpd   ##下载httpd
CMD ["/usr/sbin/httpd","-D","FOREGROUND"]  ##启动方式

[root@server1 docker]# cat dvd.repo 
[dvd]
name=rhel7.3 
baseurl=http://172.25.61.250:/rhel7.3
gpgcheck=0
3.创建容器,执行脚本
[root@server1 docker]# docker build -t rhel7:v1 .
Sending build context to Docker daemon  3.072kB
Step 1/4 : FROM rhel7
 ---> 0a3eb3fde7fd
Step 2/4 : COPY dvd.repo /etc/yum.repos.d/dvd.repo
 ---> 41d72a1d5829
Step 3/4 : RUN rpmdb --rebuilddb && yum install -y httpd
 ---> Running in 1e18c7ca78c8
Complete!
Removing intermediate container 1e18c7ca78c8
 ---> 447f28df0d12
Step 4/4 : CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
 ---> Running in 93be06d3be9e
Removing intermediate container 93be06d3be9e
 ---> ded1c070ef2a
Successfully built ded1c070ef2a
Successfully tagged rhel7:v1
[root@server1 docker]# docker history  rhel7:v1
IMAGE               CREATED              CREATED BY                                      SIZE  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值