Docker 鏡像構建之 docker commit


我們可以通過公共倉庫拉取鏡像使用,但是,有些時候公共倉庫拉取的鏡像並不符合我們的需求。盡管已經從繁瑣的部署工作中解放出來,但是實際開發時,我們可能希望鏡像包含整個項目的完整環境,在其他機器上拉取打包完整的鏡像,直接運行即可。

  Docker 支持自己構建鏡像,還支持將自己構建的鏡像上傳至公共倉庫,鏡像構建可以通過以下兩種方式來實現:

  • docker commit:從容器創建一個新的鏡像;
  • docker build:配合 Dockerfile 文件創建鏡像。

  

  下面我們先通過 docker commit 來實現鏡像的構建。

  目標:我們通過基礎鏡像 centos:7,在該鏡像中安裝 jdk 和 tomcat 以后將其制作為一個新的鏡像 mycentos:7

  

創建容器

  

# 拉取鏡像
docker pull centos:7
# 創建容器
docker run -di --name centos7 centos:7

  

拷貝資源

  

# 將宿主機的 jdk 和 tomcat 拷貝至容器
docker cp jdk-11.0.6_linux-x64_bin.tar.gz centos7:/root
docker cp apache-tomcat-9.0.37.tar.gz centos7:/root

  

安裝資源

  

# 進入容器
docker exec -it centos7 /bin/bash
----------------------以下操作都在容器內部執行----------------------
# 切換至 /root 目錄
cd root/
# 創建 java 和 tomcat 目錄
mkdir -p /usr/local/java
mkdir -p /usr/local/tomcat
# 將 jdk 和 tomcat 解壓至容器 /usr/local/java 和 /usr/local/tomcat 目錄中
tar -zxvf jdk-11.0.6_linux-x64_bin.tar.gz -C /usr/local/java/
tar -zxvf apache-tomcat-9.0.37.tar.gz -C /usr/local/tomcat/
# 配置 jdk 環境變量
vi /etc/profile
# 在環境變量文件中添加以下內容
export JAVA_HOME=/usr/local/java/jdk-11.0.6/
export PATH=$PATH:$JAVA_HOME/bin
# 重新加載環境變量文件
source /etc/profile
# 測試環境變量是否配置成功
[root@f7787f6fcbb6 ~]# java -version
java version "11.0.6" 2020-01-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.6+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.6+8-LTS, mixed mode)
# 刪除容器內 jdk 和 tomcat
rm jdk-11.0.6_linux-x64_bin.tar.gz apache-tomcat-9.0.37.tar.gz -rf

  

構建鏡像

  

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit -a="mrhelloworld" -m="jdk11 and tomcat9" centos7 mycentos:7
  • -a:提交的鏡像作者;
  • -c:使用 Dockerfile 指令來創建鏡像;
  • -m:提交時的說明文字;
  • -p:在 commit 時,將容器暫停。

  

使用構建的鏡像創建容器

  

# 創建容器
docker run -di --name mycentos7 -p 8080:8080 mycentos:7
# 進入容器
docker exec -it mycentos7 /bin/bash
# 重新加載配置文件
source /etc/profile
# 測試 java 環境變量
[root@dcae87df010b /]# java -version
java version "11.0.6" 2020-01-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.6+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.6+8-LTS, mixed mode)
# 啟動 tomcat
/usr/local/apache-tomcat-9.0.37/bin/startup.sh
# 訪問 http://192.168.10.10:8080/ 看到頁面說明環境 OK!

基於 docker commit 的方式構建鏡像大家已經學會了,接下來該學習如何使用 docker build 並配合 Dockerfile 文件構建鏡像。再學習一下 Docker 鏡像的備份恢復遷移就更好了。

本文采用 知識共享「署名-非商業性使用-禁止演繹 4.0 國際」許可協議

大家可以通過 分類 查看更多關於 Docker 的文章。

  

🤗 您的點贊轉發是對我最大的支持。

📢 掃碼關注 哈嘍沃德先生「文檔 + 視頻」每篇文章都配有專門視頻講解,學習更輕松噢 ~


免責聲明!

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



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