1. 程式人生 > 其它 >Docker 07 部署Tomcat

Docker 07 部署Tomcat

部署 Tomcat 可以參考 Docker Hub 官方文件:https://hub.docker.com/_/tomcat

啟動Tomcat

[root@sail bin]# docker run -d -p 8080:8080 --name=tomcat01 tomcat
Unable to find image 'tomcat:latest' locally
latest: Pulling from library/tomcat
5e0b432e8ba9: Pull complete 
a84cfd68b5ce: Pull complete 
e8b8f2315954: Pull complete 
0598fa43a7e7: Pull complete 
e0d35e3be804: Pull complete 
8fc448a0c88b: Pull complete 
dbdff6e5955b: Pull complete 
5daf3771e3d8: Pull complete 
e4265b3badfc: Pull complete 
126f233cb97a: Pull complete 
Digest: sha256:429d5c140820d5eba38042823501d5f4e0f03b282133513e29c22d6358daa7c7
Status: Downloaded newer image for tomcat:latest
fe247e0ef80de961df2f73216b3c604d97094b9a35064f9bef421243e610e487
[root@sail bin]# docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED              STATUS              PORTS                    NAMES
fe247e0ef80d   tomcat    "catalina.sh run"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp   tomcat01

這裡選擇直接啟動的方式,若本地沒有該映象,則先從官方庫拉取。

進入容器

[root@sail sail]# docker exec -it tomcat01 /bin/bash
root@fe247e0ef80d:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE	NOTICE	README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@fe247e0ef80d:/usr/local/tomcat# cd webapps
root@fe247e0ef80d:/usr/local/tomcat/webapps# ls
root@fe247e0ef80d:/usr/local/tomcat/webapps# 

這裡發現一個問題,Tomcat 下的 webapps 沒有檔案,所以 Tomcat 的初始頁面是不能顯示的。

這也是 Docker 的精髓,只保留最核心的東西,剔除所有不必要的內容

這也並非不可解決,webapps 的預設內容是存放在 webapps.dist 中的

root@fe247e0ef80d:/usr/local/tomcat# cd webapps.dist
root@fe247e0ef80d:/usr/local/tomcat/webapps.dist# ls
ROOT  docs  examples  host-manager  manager

webapps.dist 中的內容複製到 webapps

root@fe247e0ef80d:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@fe247e0ef80d:/usr/local/tomcat# cd webapps
root@fe247e0ef80d:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager

外網訪問測試

命令測試

root@fe247e0ef80d:/usr/local/tomcat/webapps# ll
bash: ll: command not found

這裡又發現一個問題,ll 這種相對基礎的命令也是沒有的,如此也可以看出 Docker 極致的精簡。

本文來自部落格園,作者:程式航,轉載請註明原文連結:https://www.cnblogs.com/codesail/p/15672648.html