目錄
- 1、創建容器
- 2、拷貝資源
- 3、安裝資源
- 4、構建鏡像
- 5、使用構建的鏡像創建容器
我們可以通過公共倉庫拉取鏡像使用,但是,有些時候公共倉庫拉取的鏡像并不符合我們的需求。盡管已經從繁瑣的部署工作中解放出來了,但是在實際開發時,我們可能希望鏡像包含整個項目的完整環境,在其他機器上拉取打包完整的鏡像,直接運行即可。
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