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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM