docker安装使用以及tomcat部署超级详解

本文涉及的产品
云防火墙,500元 1000GB
简介: docker安装使用以及tomcat部署超级详解
一,准备阶段

docker官网:https://docs.docker.com/get-started/

docker hub:https://www.docker.com/products/docker-hub

一台云服务器https://swas.console.aliyun.com/#/servers,尽量选centos版本安装。由于贫穷,本人只能使用一台学生机,还是最低配置1核2G,不过完全够用了

二,安装docker

1,打开xshell连接服务器

2,下载安装包

sudo yum install -y yum-utils

3,设置仓库镜像

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4,更新yum软件包索引

yum makecache fast

5,安装相关的docker docker-ce为社区版 docker-ee 为企业版

yum install docker-ce docker-ce-cli containerd.io

6,启动docker

systemctl start docker


7,查看是否安装成功,如若出现安装成功,则会显示docker的信息

docker version

8,查看镜像,由于并没有安装东西,所以应该是空的

docker images

9,卸载docker,如若需要的话,不需要则跳过

#卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#删除资源
rm -rf /var/lib/docker

10,如需重新安装的话,则需要卸载旧版本.不需要则跳过

三,安装tomcat

1,在此之前,由于本人遇到了比较多的坑,因此经常需要做的一件事就是,重启docker,不管三七二十一,重启解决一半问题

sudo service docker restart

2,由于这个docker是外国人写的,因此呢下载东西的话也是需要阿里云镜像加速的。打开阿里云,再打开控制台,搜索容器镜像,就能找到镜像加速服务了,把这一大段输入即可xhell即可,这样下载东西就非常的快了。每个服务器都有属于自己的加速器,用别人的估计也没啥用吧


3,下载centos镜像

docker pull centos

4,准备下载tomcat了。如果需要制定版本的话

可以去 https://www.docker.com/products/docker-hub 上面输入查询,把自己想要的版本找到即可

也可以直接通过search 进行查找,如查找tomcat

docker search tomcat

接下来就开始下载了,由于本地使用的是tomcat9.0,因此下载tomcat9.0就行了

docker pull tomcat:9.0

如果不指定版本的话,则默认下载最新版本,装了镜像下载大家就可以发现超级快

5,查看该镜像是否安装成功,即查看所有的镜像

docker images

这是本人安装的一部分,可以发现tomcat在这里面了,版本也是9.0

6,安装成功之后就开始运行镜像了

docker run -d -p 8080:8080 --name tomcatqaq tomcat:9.0

解释一下:

  -d :就是以后台运行方式运行  也可以 -t :以交互式运行
  -p :暴露端口号第一个8080是暴露linux 的端口号,这样外部才能连接linux
         第二个端口号暴露的是容器的端口号,这样linux才能连接容器
    这样外部就能通过服务器访问容器了
  --name:给容器取名
  tomcat:9.0:运行时加上版本,指定是这个服务器

7,镜像运行后,可以通过ps查看正在运行的容器,就能发现刚刚运行的已经在运行了

docker ps
docker ps -a :用于查看最近全部运行过的容器

删除容器,这个看需求,说说我遇到的坑吧,就是将我云服务器开发的端口都试了一大堆,最后发现只能8080:8080才能访问,一次直接递归删除所有的容器,这样端口自然就解放出来了

docker rm id:不能删除正在运行的容器,否则需要使用rm -rf删除
docker rm -f $(docker ps -aq) 递归删除所有的容器 

8,关闭防火墙,如果没有关闭防火墙,那么curl连接肯定失败,这也是我遇见的坑

service firewalld status :查看状态
service firewalld stop:关闭防火墙

9,阿里云开启允许访问的端口号,由于本人用的是轻量级阿里云服务,就是学生机,所以直接在防火墙那里就能找到。如果不是学生机,就可以在自己的服务器创建本实例安全组了

10,测试

使用curl测试端口号,通过ps 可以查出运行状态以及端口号,测试即可。可以发现出现页面404,说明可以访问了,只是路径出现问题

也可以在浏览器测试,也出现此页面。

这也是我遇到的一个大坑,以为我之前访问的是 宿主机ip:8080 ,一直访问失败,后面才发现,原来是要自己的服务器的 外网:8080 才能访问

11,由于404,肯定是页面出现问题,所以就进去webapps下找

进入正在运行的tomcat9.0容器

docker exec -it tomcatqaq /bin/bash

进入后可以发现两个重要的webapps以及webapps.dist

在自己tomcat可以发现,下面的东西时全部存在webapps文件夹下的,

点开webapps时发现为空

原来这个tomcat是被docker给阉割了,就是将原本属于webapps下面的全部东西放入到webapps.dist文件下面了

接下来就好办了,可以cp赋值过去,也可以rm移动过去,当然还可以直接删除webapps文件,再将webapps.dist重命名为webapps。这里选择复制

再切换到webapps,就能发现里面有东西了

12,完成以上步骤,就可以进行最终的测试了

可能需要30s左右,我们就能在浏览器上访问了。一定要用这个外网ip,而不是宿主机ip,真的我进这个坑一上午。就能出现熟悉的·界面了

curl 0.0.0.0:8080

大功告成!

四,总结,遇到的坑

1,修改root@后的别名

vi /etc/hostname

2,关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

3,如何解决端口映射过多而导致端口被占用问题,删除容器即可

docker rm id:不能删除正在运行的容器,否则需要使用rm -rf删除
docker rm -f $(docker ps -aq) 递归删除所有的容器

4,使用的端口映射路径使用8080

5,浏览器访问用服务器外网ip

6,重启解决百分之50问题

1,重启docker:sudo service docker restart
2,启动services文件:systemctl enable docker
五,tomcat安装成功!

如需更多的命令,请访问官方文档:

https://docs.docker.com/get-started/

目录
打赏
0
0
0
0
3684
分享
相关文章
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
364 91
|
18天前
|
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
81 23
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
大模型文件Docker镜像化部署技术详解
大模型文件Docker镜像化部署技术详解
195 2
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
|
1月前
|
在Docker上部署Ollama+AnythingLLM完成本地LLM Agent部署
通过以上步骤,您可以成功在Docker上部署Ollama和AnythingLLM,实现本地LLM Agent的功能。在部署过程中,确保环境和配置正确,以避免不必要的问题。希望本文能够帮助您顺利完成部署,并在本地环境中高效地使用LLM模型。
650 8
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
Stirling-PDF 是一款基于 Docker 的本地化 PDF 编辑工具,支持 50 多种 PDF 操作,包括合并、拆分、转换、压缩等,同时提供多语言支持和企业级功能,满足个人和企业用户的多样化需求。
154 6
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
289 44
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
84 19
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
180 0