Docker学习:DockerFile基础

Docker File说明:

dockerfile是用来构建docker镜像的文件!命令参数脚本

一、构建步骤:

  1. 编写一个dockerfile文件
  2. docker build 构建成为一个镜像
  3. docker run 运行镜像
  4. docker push 发布镜像(Docker Hub、阿里云镜像仓库!)

二、构建过程:

基础知识:
1、每个保留关键字(指令)都必须是大写字母
2、执行从上到下顺序执行
3、#表示注释
4、每一个指令都会创建提交一个新的镜像层,并提交

说明:dockerfile是面向开发的,以后需要发布项目的时候,做镜像,就需要编写dockerfile
文件!

步骤: 开发–部署–运维
DockerFile:构建文件,定义了一切的步骤,源代码
DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品
Docker容器:容器就是镜像运行起来提供服务器

三、DockerFile指令

FROM 				#基础镜像,构建开始
MAINTAINER			#指定维护者信息 姓名+邮箱
RUN 				#镜像构建的时候需要运行的命令
ADD					#添加内容,自动解压
WORKDIR				#镜像的工作目录	
VOLUME 				#设置一个容器卷,挂载主机目录
EXPOSE              #指定对外的端口
CMD 				#指定容器启动的时候要运行的命令,只有最后一个会生效,会被替代
ENTRYPOINT          #指定容器启动的时候要运行的命令,可以追加命令
ONBUILD      		#当构建一个被继承DockerFile,这个时候会运行ONBUILD命令
COPY				#类似ADD,将文件拷贝到镜像中
ENV					#构建的时候,设置环境变量

例子:Docker Hub官网下构建Centos7

FROM scratch
ADD centos-7-x86_64-docker.tar.xz /

LABEL \
    org.label-schema.schema-version="1.0" \
    org.label-schema.name="CentOS Base Image" \
    org.label-schema.vendor="CentOS" \
    org.label-schema.license="GPLv2" \
    org.label-schema.build-date="20201113" \
    org.opencontainers.image.title="CentOS Base Image" \
    org.opencontainers.image.vendor="CentOS" \
    org.opencontainers.image.licenses="GPL-2.0-only" \
    org.opencontainers.image.created="2020-11-13 00:00:00+00:00"

CMD ["/bin/bash"]

四、创建一个自定义的Centos

1、构建镜像脚本

[root@Jraibow /]# cd home
[root@Jraibow home]# mkdir dockerfile
[root@Jraibow dockerfile]# vim dockerfile01
#这里是dockerfile01的具体内容
FROM centos

#输入镜像作者信息
MAINTAINER xiaojia<XXXXXX@qq.com>

#配置环境变量,指定工作目录
ENV MYPATH /usr/local
WORKDIR $MYPATH

#下载需要的工具
RUN yum -y install vim
RUN yum -y install net-tools

#指定暴露端口
EXPOSE 80

#需要执行的命令
CMD echo $MYPATH
CMD /bin/bash

2、通过docker build构建镜像文件

[root@Jraibow dockerfile]# docker build -f dockerfile01 -t mycentos .
#构建成功的提示信息
Successfully built aaf983883ecc
Successfully tagged mycentos:latest
#查看镜像是否创建成功
[root@Jraibow dockerfile]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED          SIZE
mycentos              latest    aaf983883ecc   15 minutes ago   340MB
#检查镜像中指定的工作目录和安装的工具是否可以正常使用!
[root@Jraibow dockerfile]# docker run -it mycentos
[root@80dbb76f8dff local]# pwd
/usr/local
[root@80dbb76f8dff local]# vim test.txt
[root@80dbb76f8dff local]# ifconfig
#docker history 镜像ID 查看镜像的历史变更
[root@Jraibow dockerfile]# docker history aaf983883ecc
IMAGE          CREATED          CREATED BY                                      SIZE      COMMENT
aaf983883ecc   28 minutes ago   /bin/sh -c #(nop)  CMD ["/bin/sh" "-c" "/bin…   0B        
d0a13470167e   28 minutes ago   /bin/sh -c #(nop)  CMD ["/bin/sh" "-c" "echo…   0B        
9c4e1c685b61   28 minutes ago   /bin/sh -c #(nop)  EXPOSE 80                    0B        
890e42fe351c   28 minutes ago   /bin/sh -c yum -y install net-tools             33.7MB    
732bdf1dce77   29 minutes ago   /bin/sh -c yum -y install vim                   74.9MB    
25c1d724dc39   31 minutes ago   /bin/sh -c #(nop) WORKDIR /usr/local            0B        
d7fe64c7c1a2   31 minutes ago   /bin/sh -c #(nop)  ENV MYPATH=/usr/local        0B        
8ac25a126428   31 minutes ago   /bin/sh -c #(nop)  MAINTAINER xiaojia<297940   0B        
5d0da3dc9764   2 months ago     /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B        
<missing>      2 months ago     /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B        
<missing>      2 months ago     /bin/sh -c #(nop) ADD file:805cb5e15fb6e0bb0…   231MB   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值