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

相關文章
相關標籤/搜索