DockerFile构建篇(四)

DockerFile

1.镜像备份与迁移

​ 备份

  • docker save -o 备份镜像的名称 源镜像名称:tag版本

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ycIxZ4r-1587448131577)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200421002645393.png)]

    恢复镜像

  • docker load -i 镜像文件
    在这里插入图片描述

2.dockerFile常用指令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0PiRkaN-1587448131596)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200421004104241.png)]

  • CMD 指定容器启动时要运行的命令,假如有多个CMD,最后一个生效

    语法格式:

    CMD 或

    CMD ["","","",…]

    CMD ["","",…]

  • ENTRYPOINT:指定容器启动时要运行的命令

  • ONBUILD:当构建一个被继承的Dockerfile时运行的命令。

3.DockerFile构建自定义centos

  1. mydockerFIle文件
FROM centos
MAINTAINER caofeng<caofeng2012@126.com>
 
LABEL name="Xiaoyu CentOS Image" \
    build-date="20200421"
    
ENV WORKPATH /home/
WORKDIR $WORKPATH
 
RUN yum -y install net-tools
RUN yum -y install vim
 
EXPOSE 80
CMD /bin/bash

把文件复制到虚拟机/home目录下。

切换到存放文件的目录执行以下命令

  1. 构建命令
docker build -f mycentosDockerFile -t xiaoyu/mycentos:1.1 .

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-blPap0Ms-1587448131599)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200421015717682.png)]

4.DockerFile构建自定义tomcat

  1. mytomcatdockerfile文件
FROM centos
MAINTAINER caofeng<caofeng2012@126.com>
 
LABEL name="Java1234 Tomcat Image" \
    build-date="20191115"
    
COPY  copyright.txt /home/copyright.txt
ADD server-jre-8u151-linux-x64.tar.gz /home/
ADD apache-tomcat-8.5.37.tar.gz /home/
 
ENV WORKPATH /home/apache-tomcat-8.5.37/
WORKDIR $WORKPATH
 
ENV JAVA_HOME /home/jdk1.8.0_151
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /home/apache-tomcat-8.5.37/
ENV CATALINA_BASE /home/apache-tomcat-8.5.37/
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
 
 
EXPOSE 8080
CMD ["/home/apache-tomcat-8.5.37/bin/catalina.sh","run"]

  1. 拷贝相关文件到宿主机上

在这里插入图片描述
在这里插入图片描述
3. 进入home/dockerFile目录执行命令

docker build -f mytomcatdockerfile -t xiaoyu/mytomcat:1.1 .

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0l6natnd-1587448131606)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200421113626411.png)]

可以看到镜像创建成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SVuUgcyD-1587448131610)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200421114242605.png)]

在本机也能够访问tomcat

5 .构建容器卷

  1. myVolumeDockerFile文件
FROM centos
VOLUME ["/home/v1","/home/v2"]
CMD /bin/bash
  1. 拷贝该文件到/home/dockerFile目录
  2. 执行命令
docker build -f myVolumeDockerFile -t xiaoyu/mytest:1.1 .

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9hCCZTLr-1587448131613)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200421115655969.png)]

可以看到镜像构建成功。

运行后,我们进入home目录,找到v1,v2两个容器卷目录;

在这里插入图片描述

然后我们通过 docker inspect 容器ID 来查看下默认生成的容器卷对应的宿主机目录

在这里插入图片描述

通过新建文件和 修改,我们发现,能实现同步

在这里插入图片描述

这种方式不方便,不能自定义挂载的目录。

6.ONBUILD命令

当构建一个被继承的Dockerfile时运行的命令,父镜像在被子镜像继承后父镜像的onbuild被触发。可以把ONBUID理解为一个触发器。

编写Dockerfile的时候,其他命令都是为了自身镜像服务的,只有ONBUILD是为了子镜像服务;

简单实例:父镜像Dockerfile:

FROM centos
ONBUILD RUN yum -y install vim
CMD /bin/bash

子镜像简单点:

FROM parent

一句即可;当构建子镜像的时候,父镜像的ONBUILD会触发,子镜像直接安装vim;实际应用,一般是ONBUILD里执行的是一些父镜像暂时无法执行的东西,比如一些COPY,ADD,可以启动一些服务,父镜像当做模板一些,仅仅提供基础支持,然后具体实行是子镜像操作。

7.私有仓库搭建

  1. 拉取私有仓库镜像 (私有仓库程序本身就是一个镜像)
docker pull registy
  1. 第二步:启动私有仓库容器
docker run -di --name=myRegistry -p 5000:5000 registry
  1. 测试

http://192.168.153.128:5000/v2/_catalog

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asgwviSi-1587448131622)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200421130621149.png)]

看到这个说明启动成功。

  1. etc/docker 修改daemon.json,让docker信任私有仓库地址

“insecure-registries”: [“192.168.153.128:5000”]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AssAQhoF-1587448131623)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200421131115771.png)\

  1. 重启docker
systemctl restart docker

8.私有仓库测试

第一步:标记此镜像为私有仓库的镜像

docker tag tomcat:7 192.168.153.128:5000/mytomcat7

第二步:上传镜像到私有仓库(先启动启动容器)

docker push 192.168.153.128:5000/mytomcat7

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJLRDVJK-1587448131625)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200421132249138.png)]

可以看到有值了。

第三步:删除192.168.1.112:5000/mytomcat7本地仓库镜像

docker rmi -f 192.168.153.128:5000/mytomcat7

第四步:从私有仓库拉取192.168.153.128:5000/mytomcat7镜像,并运行;

docker run -it -p 8080:8080 192.168.153.128:5000/mytomcat7

访问地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vhrfVVwe-1587448131627)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200421132953805.png)]

看到这个说明ok

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值