1. 程式人生 > >Docker實踐之自定義映象、推送至遠端docker hub

Docker實踐之自定義映象、推送至遠端docker hub

一、Dockerfile、Docker映象和Docker容器的關係

在進行建立映象之前,我們先了解一下這三者之間的關係。

Dockerfile 是軟體的原材料,Docker 映象是軟體的交付品,而 Docker 容器則可以認為是軟體的執行態。從應用軟體的角度來看,Dockerfile、Docker 映象與 Docker 容器分別代表軟體的三個不同階段,Dockerfile 面向開發,Docker 映象成為交付標準,Docker 容器則涉及部署與運維,三者缺一不可,合力充當 Docker 體系的基石。

二、建立自定義映象的兩種方式

  1. 使用commit命令建立本地映象,我們在原有映象基礎上所做的修改應用commit命令之後 ,形成一個全新映象,個人不太推薦此種做法,因為不便映象的持續維護。
  2. 使用Dockerfile建立映象,簡單來說,就是我們編寫好一個模板檔案,編譯之後就形成一個可用版本的映象,後期我們只需維護該模板檔案就可以達到映象的持續更新、維護。

三、採用Dockerfile建立映象(建立通用java環境映象)

為了保持映象通用與可維護 ,首先我們需要首先建立一個環境配置java映象。具體Dockerfile編寫如下:

#首先設定我們基礎映象來源
FROM centos:latest
#設定作者資訊
MAINTAINER jiucool "www.jiucool.org"
#下面是設定環境變數
ENV JDK_FILE_NAME server-jre-8u74-linux-x64.tar.gz
ENV INSTALL_FOLDER /home/install
ENV JDK_HOME /usr/local/jdk
 
#執行相關命令
RUN mkdir ${INSTALL_FOLDER}
RUN mkdir ${JDK_HOME}
ADD ${JDK_FILE_NAME} ${JDK_HOME}
ADD jdk.sh /etc/profile.d/
 
RUN chmod 755 /etc/profile.d/jdk.sh
RUN  chmod +x -R /usr/local/jdk/
WORKDIR ${INSTALL_FOLDER}
#執行的預設命令
CMD ["/bin/bash"]


我們的檔案目錄結構如下:

docker_java

然後執行編譯命令

docker build -t jiucool/java:server-jre-8u74 .

docker_java_2

docker_java_3

OK,到這裡已經編譯成功,我們需要執行該映象驗證一下,是否配置正確。

docker run -it jiucool/java:server-jre-8u74
docker_java_4

OK,經驗證一切正常。

四、映象推送到docker hub 官方倉庫

首先我們需要登入賬號:

docker login
Username: jiucool
Password: 
Email: [email protected]
Login Succeeded


推送到Docker Hub上的映象必須按照下面的格式進行:username/image_name,如果命名的映象名字不是按照上面的規則進行的,可以使用docker tag 進行修改。

下面執行推送命令:
docker push jiucool/java:server-jre-8u74

docker_java_push

稍等片刻即推送成功。

然後通過官方庫進行搜尋查詢驗證。

docker_java_5

至此,我們已經從編寫Dockerfile — 編譯 — 推送,完成了整個過程。