zoukankan      html  css  js  c++  java
  • docker镜像制作Dockerfile

    使用 Dockerfile 定制镜像

    从刚才的 docker commit 的学习中,我们可以了解到,镜像的定制实际上就是 定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作 的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复 的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。

    示范一:tomcat基础镜像

    cat Dockerfile 

    FROM centos

    #制定基础镜像

    MAINTAINER  xxxx

    RUN  mkdir -p /opt/app/tomcat &&

          mkdir -p /opt/applog/MskyLog  &&

          mkdir -p /data/appdatas/cat &&

          useradd jboss5  &&

          chown -R jboss5:jboss5 /opt/app/tomcat &&

          chown -R jboss5:jboss5 /opt/applog/MskyLog &&

          chown -R jboss5:jboss5 /data/appdatas/cat  

    ADD  apachetomcatserver.tar.gz  /opt/app/tomcat

    ADD  jdk1.8.0_102.tar.gz  /opt/app/tomcat

     

    ENV LANG=en_US.utf8       

    ENV JAVA_HOME=/opt/app/tomcat/jdk1.8.0_102     

    ENV PATH=$JAVA_HOME/bin:$PATH   

    EXPOSE 8180

    每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

    然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。

     

    docker build -t tomcat_test .

     

     

     

    示范二:tomcat具体应用(以xxx为例)

    cat  Dockerfile

    FROM  tomcat_test

    MAINTAINER  xxxx

    COPY  UmeCar.war /opt/app/tomcat/apachetomcatserver/webapps

    USER jboss5

    ENTRYPOINT  ["/opt/app/tomcat/apachetomcatserver/bin/startup.sh","run"]

    docker build -t xxx .

    给镜像打标签:docker tag

    制作完镜像后根据自己的需要给镜像打标签(重起镜像名称),将上述制作好的镜像打一个标签,通常是以私有仓库地址为镜像名称的。

    docker   tag  tomcat_test    10.237.79.203/test/ tomcat_test

    查看镜像:

    [root@docker-bulid test]# docker images

    REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE

    xxxx                        latest             5dad1eed56ff        6 minutes ago       780MB

    10.237.79.203/test/tomcat_test  latest              7304d31c44fe        24 minutes ago      595MB

    tomcat_test                     latest             7304d31c44fe        24 minutes ago      595MB

    centos                          latest             67fa590cfc1c        8 days ago          202MB

    将镜像推送到私有镜像仓库中:docker push

    使用命令docker push + 镜像名字:

    [root@docker-bulid test]# docker push 10.237.79.203/test/tomcat_test

    The push refers to repository [10.237.79.203/test/tomcat_test]

    c943684290b7: Pushed 

    6fdfb7ca8f55: Pushed 

    7b470a43942f: Pushed 

    877b494a9f30: Pushed 

    latest: digest: sha256:2bf7491d7ac220e8d6bdae7d70bc1b90f0f2c500ebb584e0b3cf24b20b8a2932 size: 1162

    方法二:执行docker commit

    docker commit 是基于已有的容器创建新的镜像。

    docker pull   xxx/xxx

    docker run  -itd  xxx/xxx

    docker ps -a  

    进入容器

    docekr exec  -it  id号   /bin/bash

    然后更改容器

    exit退出

    提交新镜像

    docker  commit xxxx  xxx/xxxx:new

  • 相关阅读:
    洛谷P2216 理想的正方形
    洛谷P2698 花盆Flowerpot【单调队列】
    洛谷P2178 品酒大会【后缀数组】【单调栈】
    洛谷P2463 Sandy的卡片【后缀数组】【二分】
    PAT甲1038 Recover the smallest number
    PAT甲1101 Quick Sort
    PAT甲1031 Hello World for U【字符串】
    PAT甲1005 Spell it right【字符串】
    django_logging
    django_session
  • 原文地址:https://www.cnblogs.com/huhuxixi/p/11662039.html
Copyright © 2011-2022 走看看