Dockerfile创建镜像

Dockerfile中的主要内容

  • FROM 它的妈妈是谁(基础镜像)
  • MAINTAINER 告诉别人,你创建了他(维护者信息)
  • RUN 你让他干什么(在命令前面加上RUN)
  • ADD 往他肚子里放点文件(COPY文件,会自动解压)
  • WORKDIR 我是cd,(就是cd命令)
  • VOLUME 给我一个存放行李的地方(目录挂载)
  • EXPOSE 我要打开的门是什么(端口)
  • RUN 进程要一直运行下去
  • ENTRYPOINT
  • CMD

RUN:设置构件容器时就运行的命令以及提交运行结果,RUN经常用于安装软件包。dockerfile中可以写多条RUN指令
CMD:设置容器启动时执行的命令,在构件时并不运行,CMD能够被docker run后面跟的命令行参数替换。dockerfile中只能写一条CMD指令,如果写了多条,那么只有最后一条生效。
ENTRYPOINT:设置容器启动时执行的命令,ENTRYPOINT不能被docker run后面跟的命令行参数替换。dockerfile中只能写一条ENTRYPOINT指令,如果写了多条,那么只有最后一条生效。

如果dockerfile中出现了ENTRYPOINT 会覆盖CMD(也就是数CMD执行的命令不会执行)

Dockerfile内容大体分为4部分

  • 1 基础镜像信息
  • 2 维护者信息
  • 3 镜像操作指令
  • 4 容器启动时执行指令

 

编写dockerfile

#this docker file
#Version 1
#Author: XXXX
#Base image
FROM centos
MAINTAINER XXXX XX@qq.com
#Commands
RUN rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm && yum -y install nginx
ADD index.html /usr/share/nginx/html/index.html
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx"]

注:在Dockerfile文件中每运行一个RUN就会在构建镜像时多加一层,所以多个RUN利用&&合并起来会较少构建镜像的层数

 

mkdir -p /opt/dockerfile/nginx

cd /opt/dockerfile/nginx/

vim Dockerfile

注:Dockerfile中ADD添加的文件必须要与Dockerfile文件在同一目录下 Dockerfile必须这个名字

vim index.html

docker build -t mynginx:v3 ./

  •  -t: 镜像的名字及标签
  • ./ Dockfile文件的路径

 

创建完镜像后启动容器

docker run -d -p 80:80 mynginx:v3

 

 

 

 

 

 

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值