docker镜像制做Dockerfile

使用 Dockerfile 定制镜像web

从刚才的 docker commit 的学习中,咱们能够了解到,镜像的定制实际上就是 定制每一层所添加的配置、文件。若是咱们能够把每一层修改、安装、构建、操做 的命令都写入一个脚本,用这个脚原本构建、定制镜像,那么以前说起的没法重复 的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。docker

 

示范一:tomcat基础镜像apache

cat Dockerfile centos

FROM centostomcat

#制定基础镜像bash

MAINTAINER  xxxxapp

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

      mkdir -p /opt/applog/MskyLog  && \学习

      mkdir -p /data/appdatas/cat && \ui

      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

相关文章
相关标签/搜索