Docker之Tomcat容器连接mysql容器

这篇具有很好参考价值的文章主要介绍了Docker之Tomcat容器连接mysql容器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Docker 是什么

Docker 能干什么

Tomcat容器连接mysql容器主要原理:

操作前的准备(Docker的安装):

 开始操作:


Docker 是什么

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker按照字面意思为搬运工,搬运工搬运的是各种容器。而按照个人理解,Docker就像集装箱,集装箱可以装各种各样的物品(塞进容器的应用),当想要用某件物品时,可以很轻松拿到并使用,因为在物品放入集装箱时就已经为你划分好了空间,各个空间不相互干扰。

Docker 存在的意图是让你把各种语言编写的程序应用以带有普适性的形式打包好,你只要拿到打包好的东西,可以忽略程序本身依赖的环境或者开发的语言,直接使用 Docker 便可以运行起来。在这个实际意义之上,最重要的是 Docker 提供了容器技术来隔离多个打包的应用或者服务之间的相互影响,同时由于打包的东西具有普适性,那么在应用规模的层面上也很便于扩展。

Docker 能干什么

1)image镜像

docker镜像就是一个只读模板,当然你也可以看成是一个封装好的系统或者应用。比如,一个镜像可以包含一个完整的centos,里面仅安装apache或其他应用。镜像可以用来创建docker容器,另外docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

2)container容器

Docker利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动,开始、停止、删除、每个容器互相隔离,以保证平台的安全。可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行再其中的应用程序。

3)repository仓库

仓库是集中存储镜像文件的一个空间。register是仓库注册服务器,注册服务器上可存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为两种,公有参考和私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下载,国内的docker pool,这里仓库的概念与Git类似,register可以理解为github这样的托管服务。

Tomcat容器连接mysql容器主要原理:

将容器映射到不同的端口上,通过访问端口的形式实现容器与容器之间的互通。

操作前的准备(Docker的安装):

1、安装相关依赖包

安装依赖包:
yum -y install yum-utils device-mapper-persistent-data lvm2
device-mapper存储驱动程序需要device-mapper-persistent-data lvm2
device-mapper时内核种逻辑卷管理的通用设备映射机制

2、设置镜像源(这边选择的是阿里的镜像源)

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

 Docker之Tomcat容器连接mysql容器

 3、安装docker -ce

yum -y install docker-ce

 4.检验docker 是否安装成功

docker version

 Docker之Tomcat容器连接mysql容器

 5、docker的配置:

若是/etc/docker目录下不存在daemon.json 请自行创建一个(touch /etc/docker/daemon.json)

写入内容(阿里的加速源):

{
"registry-mirrors":["https://xxxxxxxxx.mirror.aliyuncs.com"]
}

 Docker之Tomcat容器连接mysql容器

 其作用主要用于镜像服务加速

添加后重载系统参数即重启服务:

systemctl daemon-reload 
systemctl restart docker.service

 Docker之Tomcat容器连接mysql容器

 开始操作:

1、拉取tomcat镜像:(当然你也可以查看tomcat的共享镜像及相关版本:docker search tomcat 选择合适的版本)

docker pull tomcat:8.5.38 (tomcat:版本号)

 Docker之Tomcat容器连接mysql容器

 2、制作tomcat 容器:(命令大致意思为将镜像塞进容器并命名为tomcat映射到8080端口)

docker run --name tomcat -p 8080:8080 -d tomcat:8.5.38
(-name 容器名 -p端口映射 -d后台运行)

 Docker之Tomcat容器连接mysql容器

 3、开放防火墙8080端口:(防止防火墙拦截访问服务器8080端口的用户,当然最好就是把他给关掉:systemctl stop firewalld.service(防火墙会禁止服务器一些端口的访问权))

firewall-cmd --zone=public --add-port=8080/tcp --permanent
systemctl restart firewalld.service

 Docker之Tomcat容器连接mysql容器

 运行容器:(在创建容器时已经处于运行状态,不需要考虑再通过命令让容器运行。假如系统重启后需要运行容器后才能对容器进行相关操作)

测试tomcat运行状态:

Docker之Tomcat容器连接mysql容器

 4、拉取mysql镜像:(与tomcat一样自行选择合适的版本)

docker pull mysql:5.7.33

 Docker之Tomcat容器连接mysql容器

 5、制作mysql容器:

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.33
#--name 是创建好的容器命名
#-p 端口映射 Linux防火墙的端口号:容器内的端口
#-d 后台运行
#-e 设置参数(将mysql初始默认密码设置为123456)

 Docker之Tomcat容器连接mysql容器

6、运行进入mysql并创建一个数据库:(新建的数据主要用于导入.sql文件命名时需要与你war包数据库名字相同)

docker exec -ti ID bash  ID指的是容器ID也可以使用容器名(进入mysql容器)
mysql -uroot -p123456  进入mysql -u 用户 -p 密码
create database 数据库名 default charset=utf8;  (有引号才算完整sql语句)

 Docker之Tomcat容器连接mysql容器

Docker之Tomcat容器连接mysql容器

 7、开放防火墙3306端口:

firewall -cmd --zone=public --and-port=3306/tcp --permanent
systemctl restart firewalld.service

Docker之Tomcat容器连接mysql容器

 测试连接:(用数据库工具或者浏览器直接访问的形式也行与访问tomcat类似但是界面不同)

Docker之Tomcat容器连接mysql容器

 8、将web包导入tomcat:(主要流程将你java项目转成war包(可以不用转将整个项目文件夹塞进去也行)传输至本机然后运行容器将war包放入tomcat /webapps的目录下)

docker cp c95200dfbcf6:/usr/local/tomcat/webapps

 注意说明:tomcat /webapps目录用于存放web项目,请事先修改好web项目包内与数据库连接用的文件例如:

Docker之Tomcat容器连接mysql容器

 Docker之Tomcat容器连接mysql容器

 测试导入的web包:

Docker之Tomcat容器连接mysql容器

 9、将sql文件导入mysql测试:

docker cp /home/shop1.sql ID:/  将文件塞进mysql容器
docker exec -it ID bash 进入容器
mysql -uroot -p123456 数据库名<.sql文件   将.sql文件导入数据库

 Docker之Tomcat容器连接mysql容器

 10、新建shop1数据库并导入shop1.sql:

说明:若事先创建好了web包对应的数据库名直接上一步导入即可,若无可新建一个。导入方式参考上面一些步骤。

Tomcat连接到数据库并显示数据库内容:

 Docker之Tomcat容器连接mysql容器

 后台与数据库联动

参考博客:CentOS7使用docker搭建测试环境,docker内安装tomcat和mysql(详细图文介绍)_iruance_ye的博客-CSDN博客_docker容器内安装tomcat

https://blog.csdn.net/u013007900/article/details/62219169

终于有人把 Docker 讲清楚了,万字详解!【建议收藏】_程序员大咖的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-413423.html

到了这里,关于Docker之Tomcat容器连接mysql容器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

    image 镜像名称,可去镜像市场查找自己需要的 hostname 容器内服务名 container_name 容器名 volumes 可以把自己电脑的路径映射到容器中的文件夹中 networks 写同一个网络可以让容器之间进行通信 启动 在项目根目录的命令行中输入 docker-compose up 停止 在项目根目录的命令行中输入 d

    2024年02月12日
    浏览(56)
  • 07 mysql5.6.x docker 启动, 无 config 目录导致客户端连接认证需要 10s

    呵呵 最近再一次 环境部署的过程中碰到了这样的一个问题 我基于 docker 启动了一个 mysql 服务, 然后 挂载出了 数据目录 和 配置目录, 没有手动复制配置目录出来, 所以配置目录是空的 然后 我基于 docker 启动了一个 nacos, 配置数据库设置为上面的这个 mysql 然后 启动 nacos, 启动

    2024年02月12日
    浏览(40)
  • Navicat远程连接Docker容器中的mysql:报异常,1044 - Access denied for user ‘root‘@‘%‘ to database ‘xxxxxx‘

    (1)在Docker中部署mysql容器; (2)远程连接工具可以成功连接之后,只会显示自动生成的数据库,其他的数据库无法显示; (3)无法使用远程连接工具创建数据库(Navicat):一旦执行创建数据库,就报1044异常。 (4)进入docker中的mysql容器中,却可以正常创建数据库。 远

    2024年02月12日
    浏览(56)
  • docker 容器修改端口和目录映射

    一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 这里是将容器内的80端口映射到宿主机的8088端口 参数说明 -d 表示后台运行容器 -t 为docker分配一个伪终端并绑定到容器的标准输入上

    2024年04月26日
    浏览(54)
  • 如何修改 docker 容器的目录映射

    创建容器时,指定了目录映射(-v) 如果容器运行之后发现目录映射需要改怎么办? 方法一 删除原有容器,重新创建新的容器 删除容器 docker rm -f 容器ID/名字 重新创建容器 docker run -d -p 9999:8080 -i --name tomcat7 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat:7 重新指定需要映射

    2024年02月16日
    浏览(40)
  • docker将本地目录映射到容器

    留个记录,方便回看 1.查看容器存在位置 返回的是docker容器存储的位置:/var/lib/docker 2.获取容器对应的那个较长的id 会返回一个挺长的容器id,例如9dc7dcfcc1d3d4b413a75ef6f70ddf6c6b03c3003e03916a3faadcf25e4ee813 3.进入对应容器配置文件目录 进入之后应该可以看到 config.v2.json 和 hostconfig.js

    2024年02月09日
    浏览(44)
  • Docker -v 挂载主机目录到容器中(及数据卷容器)

    使用 Docker 的过程中,经常需要挂载主机上的目录或文件到 Docker 容器中,以实现数据的共享或持久化。而 docker run -v 命令便是用于挂载主机目录到 Docker 容器中的常用命令。 在创建启动容器时,使用 -v 参数设置数据卷 注意事项: 目录必须是绝对路径 如果目录不存在,会自

    2024年02月10日
    浏览(46)
  • docker给已经启动容器添加挂载目录

    1.关闭docker 2. sudo su切换到root身份 cd /var/lib/docker/containers/容器id/,进入对应容器目录 3.vim hostconfig.json 修改如下,将容器目录/import绑定到主机/data目录: \\\"Binds\\\": [\\\"/data:/import\\\"], 4.vim config.v2.json 修改如下,添加MountPoints: 5.启动docker    systemctl start docker.socket  systemctl start docker.ser

    2024年02月11日
    浏览(45)
  • 【Docker】解决Docker创建Tomcat容器实例后访问Tomcat主页时报HTTP状态404-未找到的错误

    《Docker是什么?Docker从介绍到Linux安装图文详细教程》 《30条Docker常用命令图文举例总结》 《Docker如何构建自己的镜像?从镜像构建到推送远程镜像仓库图文教程》 《Docker多个容器和宿主机之间如何进行数据同步和数据共享?容器数据卷从介绍到常用操作图文教程》 我在使

    2024年02月06日
    浏览(56)
  • docker容器共享宿主机环境(目录挂载)

    一、背景介绍 如果开发的服务均需要将打成docker镜像,可是随着服务越来越多,镜像也越来越多。每次制作镜像的时候都需要将依赖打进容器,这样一个jre的环境就是100多M。有一天突发奇想,容器能不能共用宿主机的环境?这样每次打镜像时体积就会少不少。 二、测试 我们

    2024年02月09日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包