记录简单的在Docker 上安装Tomcat

首先我是在云服务器上(Centos系统)安装的Docker,我们需要在https://hub.docker.com/ 上查找Tomcat镜像

[root@VM_0_17_centos ~]# docker pull tomcat


拉取完官方的Tomcat的镜像后,我们可以在本地镜像列表里查到 REPOSITORY 为 tomcat 的镜像,

[root@VM_0_17_centos ~]# docker images|grep tomcat
tomcat              latest              ed94f55483b8        2 weeks ago         507MB

 

接下来,运行容器

[root@VM_0_17_centos ~]# docker run -d --name tomcat -p 8080:8080 tomcat:latest
0be1774e1e5e1388663e65b4a5e59d58597072a960684fff3eca009c3e89d054

说明一下:-p 8080:8080:将容器的 8080 端口映射到主机的 8080 端口。

这时候查看docker 正在运行的容器:

[root@VM_0_17_centos ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                    NAMES
0be1774e1e5e        tomcat:latest       "catalina.sh run"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp   tomcat

 

这时候已经在运行了,接下来,我们用浏览器访问,

 这时候,很奇怪哦,404错误?我这里检查完服务器端口8080已经开放了,接下来,我们进入tomcat的目录:

[root@VM_0_17_centos ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
0be1774e1e5e        tomcat:latest       "catalina.sh run"   7 minutes ago       Up 7 minutes        0.0.0.0:8080->8080/tcp   tomcat
[root@VM_0_17_centos ~]# docker exec -it 0be1774e1e5e /bin/bash
root@0be1774e1e5e:/usr/local/tomcat# ^C
root@0be1774e1e5e:/usr/local/tomcat# ls -l
total 156
-rw-r--r-- 1 root root  19318 Dec  7 19:23 BUILDING.txt
-rw-r--r-- 1 root root   5408 Dec  7 19:23 CONTRIBUTING.md
-rw-r--r-- 1 root root  57011 Dec  7 19:23 LICENSE
-rw-r--r-- 1 root root   1726 Dec  7 19:23 NOTICE
-rw-r--r-- 1 root root   3255 Dec  7 19:23 README.md
-rw-r--r-- 1 root root   7136 Dec  7 19:23 RELEASE-NOTES
-rw-r--r-- 1 root root  16262 Dec  7 19:23 RUNNING.txt
drwxr-xr-x 2 root root   4096 Jan  4 05:07 bin
drwxr-sr-x 1 root root   4096 Jan 18 08:59 conf
drwxr-sr-x 2 root staff  4096 Jan  4 05:07 include
drwxr-xr-x 2 root root   4096 Jan  4 05:06 lib
drwxrwxrwx 1 root root   4096 Jan 18 08:59 logs
drwxr-sr-x 3 root staff  4096 Jan  4 05:07 native-jni-lib
drwxrwxrwx 2 root root   4096 Jan  4 05:06 temp
drwxr-sr-x 2 root staff  4096 Jan  4 05:06 webapps
drwxr-xr-x 7 root root   4096 Dec  7 19:21 webapps.dist
drwxrwxrwx 2 root root   4096 Dec  7 19:19 work

然后查看到里面发现有webapps和webapps.dist两个文件,而wenapps里面没有东西,webapps.dist才是我们要的东西

root@0be1774e1e5e:/usr/local/tomcat# cd ./webapps
root@0be1774e1e5e:/usr/local/tomcat/webapps# ls -l
total 0

所以这里把webapps删掉,把webapps.dist改名为webapps

root@0be1774e1e5e:/usr/local/tomcat# rm -rf webapps
root@0be1774e1e5e:/usr/local/tomcat# mv webapps.dist webapps

改完之后,我们再重新访问:

 这时候已经可以访问了。

但是,这还没有提交的话,在镜像重启后,又会报404错误,所以我们commit一下(注:mytomcat为重新起的镜像名):

[root@VM_0_11_centos mytar]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
3377e9f179c8        tomcat:latest       "catalina.sh run"   4 minutes ago       Up 4 minutes        0.0.0.0:8080->8080/tcp   tomcat
[root@VM_0_11_centos mytar]# docker commit 3377e9f179c8 mytomcat
sha256:a881f3836c336910c0e4de880d6cbecdc0c8fd25ea7f9dc84ab5735d578bfe71
[root@VM_0_11_centos mytar]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mytomcat            latest              a881f3836c33        2 minutes ago       652MB
tomcat              latest              f6ffbe316e00        8 minutes ago       652MB

接下来,我们只需要运行我们打包的镜像就可以了

[root@VM_0_11_centos mytar]# docker run -d --name mytomcat -p 8080:8080 mytomcat:latest
143ca8a8727a428f657396db7af0830600e440b92264f870723eb89395fa2971

再次访问就可以看到tomcat的页面了,一劳永逸:

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐