本篇通過比較詳細的示例, 示範通過Docker的Tomcat鏡像釋出Web項目, 包括下載下傳Tomcat鏡像, 通過Dockerfile自定義項目的鏡像, 修改鏡像中的檔案等内容.
目錄
- 1 下載下傳 Docker 鏡像
- 2 部署Web項目
- 2.1 通過Dockerfile自定義項目鏡像
- 2.2 啟動自定義鏡像, 生成一個容器
- 2.3 另一種啟動方式: 互動式啟動
- 3 (附) 向鏡像中添加檔案
- 參考資料
- 版權聲明
在此篇之前, 需要配置一些環境, 請參考上一篇的介紹: Docker 01 - CentOS 7 中安裝 Docker 的詳細步驟.
# 檢視本地鏡像(暫時沒有任何鏡像):
[root@localhost /data]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
# 檢視正在運作的 Docker 容器(暫時沒有運作的):
[root@localhost /data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
配置國内的鏡像加速器, 然後抓取 Tomcat 的鏡像:
# 前往 Docker 安裝目錄, 新增配置:
[root@localhost ~]# cd /etc/docker/
[root@localhost docker]# ls
key.json
[root@localhost docker]# vim daemon.json
# 加速器配置内容如下:
{
"registry-mirrors": ["https://registry.docker-cn.com", "https://pee6w651.mirror.aliyuncs.com"]
}
# 儲存、退出後, 另配置生效:
[root@localhost docker]# systemctl daemon-reload
# 最後需要重新開機 Docker 服務:
[root@localhost docker]# systemctl start docker.service
# 然後從倉庫中拉取 Tomcat 鏡像(下面鏡像名稱與鏡像分支号之間的冒号":"不能有空格):
[root@localhost /data]# docker pull tomcat:8.5.43
8.5.43: Pulling from library/tomcat
9cc2ad81d40d: Pulling fs layer
e6cb98e32a52: Download complete
42cfa3699b05: Pull complete
......
Digest: sha256:6e30b06a90d3206519a5ea730057001a1b830b9169e1baf76a97e1767efc0db7
Status: Downloaded newer image for tomcat:8.5.43
# 檢視是否拉取成功:
[root@localhost docker]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 8.5.43 6e30b06a90d3 4 days ago 506MB
我們通過 Dockerfile 腳本(由一系列指令和參數構成), 從基礎鏡像中建立一個新的、自定義的鏡像.
# 建立操作目錄:
[root@localhost ~]# mkdir -p /data/Docker && cd /data/Docker
# 建立 Dockerfile 腳本, 内容如下:
[root@localhost ~]# cat Dockerfile
FROM tomcat:8.5.43
ADD heal-test /usr/local/tomcat/webapps
# 其中 “heal-test” 是我們要釋出的測試Web項目, 是解壓後的檔案, 與 Dockerfile 處于同級目錄.
# 在 Dockerfile 檔案所在目錄執行:
[root@localhost Docker]# docker build --rm -t heal-test:1.0 .
Sending build context to Docker daemon 70.75MB
Step 1/2 : FROM tomcat:8.5.43
---> 6e30b06a90d3
Step 2/2 : ADD goSearch /usr/local/tomcat/webapps
---> 09ddcc5cacc6
Successfully built 09ddcc5cacc6
Successfully tagged heal-test:1.0
# 檢視鏡像是否生成:
[root@localhost Docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
heal-test 1.0 09ddcc5cacc6 7 seconds ago 576MB
tomcat 8.5.43 6e30b06a90d3 4 days ago 506MB
# 根據自定義的鏡像建立一個容器, 運作在主控端的 7070 端口上:
[root@localhost data]# docker run -it -p 7070:8080 heal-test:1.0
# 檢視是否正常運作:
[root@localhost data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23f14c40c4f8 heal-test:1.0 "catalina.sh run" 20 seconds ago Up 19 seconds 0.0.0.0:7070->8080/tcp upbeat_meninsky
# 通過bash指令, 與 Docker 進行互動:
[root@localhost Docker]# docker run -it --name heal-test -p 7070:8080 heal-test:1.0 bash
WARNING: IPv4 forwarding is disabled. Networking will not work.
root@87aabcbc700b:/usr/local/tomcat# cd conf/
root@87aabcbc700b:/usr/local/tomcat/conf# ls
catalina.policy context.xml jaspic-providers.xsd server.xml tomcat-users.xsd
catalina.properties jaspic-providers.xml logging.properties tomcat-users.xml web.xml
root@87aabcbc700b:/usr/local/tomcat/conf# exit
exit
鏡像中一般不支援
vi
、
vim
等工具, 是以我們可以借助
cp
(拷貝)指令上傳檔案到鏡像中.
# 通過 cp 指令将檔案拷貝到容器中:
[root@localhost data]# docker cp test.xml 23f14c40c4f8:/usr/local/tomcat/conf/Catalina/localhost
Docker 删除鏡像
使用 Dockerfile 定制鏡像
在docker下的tomcat容器中部署war包的兩種方式
Docker安裝+HelloWorld+運作Tomcat
作者: 馬瘦風(https://healchow.com)
出處: 部落格園 馬瘦風的部落格(https://www.cnblogs.com/shoufeng)
感謝閱讀, 如果文章有幫助或啟發到你, 點個[好文要頂👆] 或 [推薦👍] 吧😜
本文版權歸部落客所有, 歡迎轉載, 但 [必須在文章頁面明顯位置标明原文連結], 否則部落客保留追究相關人員法律責任的權利.