1. 程式人生 > >Docker 02 - 向 Docker 的 Tomcat 映象中部署 Web 應用

Docker 02 - 向 Docker 的 Tomcat 映象中部署 Web 應用

目錄

  • 1 下載 Docker 映象
  • 2 部署Web專案
    • 2.1 通過Dockerfile自定義專案映象
    • 2.2 啟動自定義映象, 生成一個容器
    • 2.3 另一種啟動方式: 互動式啟動
  • 3 (附) 向映象中新增檔案

在此篇之前, 需要配置一些環境, 請參考上一篇的介紹: Docker 01 - CentOS 7 中安裝 Docker 的詳細步驟.

1 下載 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

2 部署Web專案

2.1 通過Dockerfile自定義專案映象

我們通過 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

2.2 啟動自定義映象, 生成一個容器

# 根據自定義的映象建立一個容器, 執行在宿主機的 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

2.3 另一種啟動方式: 互動式啟動

# 通過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

3 (附) 向映象中新增檔案

映象中一般不支援vivim等工具, 因此我們可以藉助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)

感謝閱讀, 如果文章有幫助或啟發到你, 點個[好文要頂