1. 程式人生 > 其它 >Docker映象構建之docker commit

Docker映象構建之docker commit

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

​ Docker 支援自己構建映象,還支援將自己構建的映象上傳到公共倉庫,映象構建可以通過以下兩種方式來實現:

  • docker commit:從容器建立一個新的映象;
  • docker huild:配合 Dockerfile 檔案建立映象;

示例:通過 docker commit 來實現映象的構建,通過基礎映象 centos:7,將 jdk 和 Tomcat 安裝在該映象中製作成一個新的映象。

1、建立容器

# 拉取映象
docker pull centos:7

# 建立容器
docker run -id --name centos7 centos:7

2、拷貝資源

將宿主機的 jdk 和Tomcat 拷貝到容器

docker cp jdk-11.0.7_linux-x64_bin.tar.gz centos7:/root
docker cp apache-tomcat-9.0.39.tar.gz centos7:/root

3、安裝資源

# 進入容器
docker exec -it centos7 /bin/bash

在容器中執行以下操作:

# 切換到 /root 目錄
cd root/

# 建立 Java 和 Tomcat 目錄
mkdir -p /usr/local/java
mkdir -p /usr/local/tomcat

# 將 jdk 和 Tomcat 解壓到容器的 Java 和 Tomcat 目錄中
tar -zxvf jdk-11.0.6_linux-x64_bin.tar.gz -C /usr/local/Java/
tar -zxvf apache-tomcat-9.0.39.tar.gz -C /usr/local/tomcat/

# 在環境變數檔案中新增以下內容
export JAVA_HOME=/usr/local/java/jdk-11.0.6/
export PATH=$PATH:$JAVA_HOME/bin

# 重新載入環境變數檔案
source /etc/profile

# 測試環境變數是否配置成功
[root@f1cd1a3df1ed etc]# java -version
java version "11.0.7" 2020-04-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)

4、構建映象

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

docker commit -a="xiaoyang" -m="jdk11 and tomcat" centos7 mycentos:7
  • -a:提交的映象作者;
  • -c:使用 Dockerfile 指令來建立映象;
  • -m:提交時的說明文字;
  • -p:在 commit 時,將容器暫停;

5、使用構建的映象建立容器

# 建立容器
docker run -id --name mycentos7 -p 8080:8080 mycentos:7

# 進入容器
docker exec -it mycentos7 /bin/bash

# 重新載入配置檔案
source /etc/profile

# 測試 Java 環境變數
[root@7ed6a969f63a /]# java -version
java version "11.0.7" 2020-04-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)

# 啟動 Tomcat
/usr//local/tomcat/apache-tomcat-9.0.39/bin/startup.sh