Docker實踐之自定義映象、推送至遠端docker hub
阿新 • • 發佈:2018-12-26
一、Dockerfile、Docker映象和Docker容器的關係
在進行建立映象之前,我們先了解一下這三者之間的關係。
Dockerfile 是軟體的原材料,Docker 映象是軟體的交付品,而 Docker 容器則可以認為是軟體的執行態。從應用軟體的角度來看,Dockerfile、Docker 映象與 Docker 容器分別代表軟體的三個不同階段,Dockerfile 面向開發,Docker 映象成為交付標準,Docker 容器則涉及部署與運維,三者缺一不可,合力充當 Docker 體系的基石。
二、建立自定義映象的兩種方式
- 使用commit命令建立本地映象,我們在原有映象基礎上所做的修改應用commit命令之後 ,形成一個全新映象,個人不太推薦此種做法,因為不便映象的持續維護。
- 使用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
build -t jiucool/java:server-jre-8u74 .
OK,到這裡已經編譯成功,我們需要執行該映象驗證一下,是否配置正確。
docker
run -it jiucool/java:server-jre-8u74
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
稍等片刻即推送成功。
然後通過官方庫進行搜尋查詢驗證。
至此,我們已經從編寫Dockerfile — 編譯 — 推送,完成了整個過程。