暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

《Linux下使用Docker部署Web项目》

云丶言 2021-06-04
466

说在前头:本人为大二在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,能力有限,文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正。若在阅读时有任何的问题,也可通过评论提出,本人将根据自身能力对问题进行一定的解答。




1.什么是Docker?

简介:docker是容器虚拟化技术,可以有多个容器(可以不同功能)且相互隔离,互不影响。容器没有自己的内核,直接运行于宿主主机的内核。

docker的优势:
    • 主机资源利用率高

    • 启动时间快

    • 部署简单

    • 运行环境一致性


docker与虚拟机的区别:虚拟机需要有自己完整的操作系统,故需要宿主主机提供资源虚拟出一套物理资源(Hypervisor层)供虚拟机使用,系统镜像往往较大,如标准的centos7有4G多。docker仅需要自身的应用和依赖库,直接运行在宿主主机上,不需要宿主主机提供虚拟的物理资源。且更加的轻量,一个小的镜像仅需要小几百MB。中间Docker引擎是否有点像java的虚拟机,docker镜像也支持跨平台,同一个镜像直接可以在Linux、Windows、mac宿主主机上运行。



2.安装Docker

介于本篇文章主要讲解如何使用Docker部署Web服务,因此Docker的安装过程在此忽略,若有的小伙伴还未安装Docker,可参考以下文章进行Docker的安装和使用:
CentOS Docker 安装:https://www.runoob.com/docker/centos-docker-install.html
复制



3.Docker基本命令介绍

docker pull : 从镜像仓库中拉取或者更新指定镜像;
docker build : 构建镜像
docker run : 运行容器
docker start : 启动容器
docker stop : 停止容器
docker restart: 重启容器
docker exce : 进入容器
docker rm : 删除容器
docker rmi : 删除镜像
docker images : 查看镜像
docker ps : 查看已运行的容器
docker ps -a : 查看所有容器
复制

对上面的命令大家先做一个大致的了解,后面部署过程中我会对每个命令具体的用法在下面一一讲解。




4.准备一个可运行的web项目

因为是部署Web项目,我们需要一个可以运行的Web项目,小伙伴们自己如果有自己的web项目可以使用自己的尝试部署,如果没有可以使用我给大家提供的war包。公众号回复“jieyue”即可获取该项目gitee仓库地址,获取到仓库地址后,如下图:


找到发行版,点击全部


下载上面框选的两个文件后,上传至我们的linux服务器即可




5.Docker部署MySQL

使用Docker部署Mysql十分方便,首先我们需要访问网易云镜像中心地址如下:
网易云镜像中心:https://c.163yun.com/hub#/home
复制


从主页中,我们可以看到,mysql镜像,我们点击进去


看到红色框选的地方,点击复制,获取拉取镜像的命令,然后在服务器中运行该命令,拉取成功后如下图:

执行:docker images // 查看已拉取的镜像
复制


可以看到,mysql镜像已经成功拉取下来,接下来我们需要运行该镜像。在此之前,我还需要查看网易云镜像中心的mysql详细描述,获取具体的运行命令。


现在我们来运行该命令:
docker run --name jieyue-mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 hub.c.163.com/library/mysql
下图是对每个命令的解读
复制

执行完run命令后,执行docker ps // 查看mysql容器是否已成功运行
复制

如上图,打印出了mysql容器的具体信息,
证明我们的容器已经成功运行
因为我们的web项目使用了mysql作为数据库,
这时我们需要对刚刚下载下来的jieyue.sql
导入mysql,步骤如下:
1.拷贝jieyue.sql到容器的/usr/local目录下
docker cp jieyue.sql jieyue-mysql:/usr/local
2.执行命令:docker exec -it jieyue-mysql bash
进入容器。
3.执行命令:mysql -u root -p 进入数据库
创建数据库:create database jieyue charset=utf8;
4.退出数据库操作界面,执行命令:
mysql -u root -p jieyue < jieyue.sql


至此数据库完成初始化。


具体操作如下图所示。
复制




6.Docker部署Redis

redis的部署与mysql类似甚至更简单,我们同样访问网易云镜像中心


复制命令后在服务器中执行

执行命令docker images,发现redis镜像已成功拉取,
接下来我们来运行redis,执行命令
docker run -d -p 6379:6379 --name jieyue-redis hub.c.163.com/library/redis
来运行容器
复制


执行docker ps看到redis已成功运行,至此,redis已部署完毕。



7.Docker部署Tomcat


拉取命令复制下来后我们需要对命令进行修改,Tomcat的版本需要使用8.5版本的,因此,将命令后的laster改成8.5
没改前:docker pull hub.c.163.com/library/tomcat:latest
改完后:docker pull hub.c.163.com/library/tomcat:8.5
复制

执行以下命令运行Tomcat容器
docker run -d -p 80:8080 --name jieyue-tomcat hub.c.163.com/library/tomcat:8.5
复制


此时访问我们服务器的ip地址即可看到如下页面


证明我们的Tomcat已成功运行,此时我们需要对Tomcat中的ROOT目录进行替换,替换成我们自己的web项目。

进入tomcat容器,cd到/usr/local/tomcat/webapps/目录,删除ROOT目录(具体操作如下)


退出容器,将我们自己的web项目war包拷贝进容器中


最后执行命令docker restart jieyue-tomcat  重启tomcat
复制




8.测试


当tomcat重启成功后我们就可以开始测试了,打开服务器域名对应的ip地址,可以看到,web项目主页已经成功显示,表明项目已成功部署(如下图)



9.总结

本篇向大家讲述了docker的基本操作命令,以及使用docker部署mysql,redis,tomcat的方法,希望大家能够从中有所收获。


👇长按二维码关注

文章转载自云丶言,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论