DockerFile介绍

Dockerfile就是用来构建docker镜像的构建文件!命令脚本!

构建步骤:

  1. 编写一个dockerfile文件
  2. docker build 构建成为一个镜像
  3. docker run 镜像
  4. docker push 发布镜像(DockerHub,阿里云镜像仓库)

打开官网dockerhub
image-20200917130958899.png
点进其中一个版本(发现镜像就是一个dockerfile文件)
image-20200917131029916.png

Dockerfile构建过程

基础知识:

  1. 每个保留关键字(指令)都必须是大写字母
  2. 执行从上到下顺序执行
  3. 表示注释

  4. 每一个指令都会创建提交一个新的镜像层,并提交!!

image-20200917131914821.png

Dockerfile指令

  1. From #基础镜像,一切从这里开始构建
  2. MAINTAINER #镜像是谁写的,姓名加邮箱
  3. RUN #镜像构建的时候需要运行的命令
  4. ADD # 如建tomcat镜像,这里需要添加tomcat压缩包
  5. WORKDIR #镜像的工作目录
  6. VOLUME #挂载的目录
  7. EXPOSE #暴露端口配置
  8. CMD #指定这个容器启动的时候要运行的命令
  9. ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
  10. ONBUILD #当构建一个被继承的dockerfile 这个时候会运行ONBUILD指令
  11. COPY #类似ADD,将我们文件拷贝到镜像中
  12. ENV #构建的时候设置环境变量

DockerFile - 图4

实战测试

DockerHub中99%镜像都是从这个基础镜像过来的 FROM scratch
image-20200917174302641.png

创建自己的centos

  1. #创建dockerfile脚本文件
  2. FROM centos
  3. MAINTAINER wise<1376053924qq.com>
  4. ENV MYPATH /usr/local
  5. WORKDIR $MYPATH
  6. RUN yum -y install vim
  7. RUN yum -y install net-tools
  8. EXPOSE 80
  9. CMD echo $MYPATH
  10. CMD echo "--------end----------"
  11. CMD /bin/bash
  12. #运行dockerfile脚本文件建立自定义镜像
  13. docker build - f dockerfile-centos -t mycentos:1.0 .
  14. #查看生成的镜像
  15. [root@wise mydockerfile]# docker images
  16. REPOSITORY TAG IMAGE ID CREATED SIZE
  17. mycentos 1.0 250259b80eb4 40 minutes ago 295MB
  18. #运行镜像
  19. docker run -it mycentos:1.0
  20. #输入vim和ifconfig命令测试自定义镜像是否成功添加vim和net-tools工具

CMD和ENTRYPOINT区别

  1. CMD #指定这个容器启动的时候运行的命令,只有最后一个会生效,可被替代
  2. ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令

测试CMD

image-20200917191021549.png
测试ENTRYPOINT
image-20200917191105019.png
image-20200917191148668.png

实战:Tomcat镜像

1.准备生成镜像需要的文件 tomcat压缩包,jdk的压缩压缩包

image-20200917191539537.png

发布自己的镜像

DockerHub

  1. #先注册一个dockerhub账号
  2. docker login -u [DockerHub用户名] #登录docker账号
  3. docker push [镜像名]:[镜像版本号tag] #push到远程镜像

阿里云镜像

1.登录阿里云并找到容器镜像服务
image-20200917205036968.png
2.创建命名空间
image-20200917205439803.png
3.创建镜像仓库
image-20200917205627342.png
4.浏览镜像信息image-20200917205732158.png

  1. #提交本地镜像到阿里云镜像服务器三个步骤 全部命令修改[]内的内容即可
  2. docker login --username=wiserzc registry.cn-hangzhou.aliyuncs.com #登录阿里云账号
  3. docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/wise_kongjian/wise:[镜像版本号] #确定发布哪个镜像
  4. docker push registry.cn-hangzhou.aliyuncs.com/wise_kongjian/wise:[镜像版本号] #push镜像到远程阿里云镜像服务器

这个自定义的仓库,所以具体命令最好查看官方文档

小结:

image-20200917212419174.png