Docker下Tomcat容器中使用Mysql的方法

在这里我们使用Tomcat容器来运行war包,不过作为一个网站一个程序,如果需要用到数据库的,那么Tomcat容器中如何连接Mysql呢?

已经pull了tomcat和mysql镜像,可以使用docker的连接系统(–link)连接多个容器方式解决tomcat容器中使用mysql

[root@izbp1b5k5bjps0dw8owk7tz ~]# docker images
REPOSITORY      TAG         IMAGE ID      CREATED       SIZE
tomcat        latest       2d084b11164d    7 days ago     463MB
mysql        5.7.22       66bc0f66b7af    2 weeks ago     372MB
[root@izbp1b5k5bjps0dw8owk7tz ~]# docker ps
CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES
[root@izbp1b5k5bjps0dw8owk7tz ~]# 

先启动mysql

docker run --name mysql -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.221

命令说明:

•–name:自定义别名
•-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
•-v /home/mysql/conf:/etc/mysql/conf.d:将主机 /home/mysql/conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf
•-v /home/mysql/data:/var/lib/mysql :将主机 /home/mysql/data 目录挂载到容器的 /var/lib/mysql
•-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码
•-d:以守护进程方式运行

注:运行的mysql暴露端口(-p 3306:3306),如果在生产环境,为了安全也可以不向外暴露端口,之后在运行tomcat容器可以通过(--link)指定容器来使用mysql

运行tomcat

docker run --name tomcat -p 8080:8080 -v /etc/localtime:/etc/localtime:ro -v /home/tomcat/logs:/usr/local/tomcat/logs -d --link mysql:db tomcat1

命令说明:

•–name:自定义别名
•-p 8080:8080:将容器的 8080 端口映射到主机的 8080 端口
•-v /etc/localtime:/etc/localtime:ro:挂载localtime文件到容器内,保证两者所采用的时区是一致的
•-v /home/tomcat/logs:/usr/local/tomcat/logs:将主机 /home/tomcat/logs 目录挂载到容器的 /usr/local/tomcat/logs
•-d:以守护进程方式运行
•–link mysql:db:告诉当前容器需要使用mysql容器,并命名为db

这样就可以在tomcat容器中通过db访问mysql了

附: Java中数据库连接参考语句:

jdbc_url=jdbc:mysql://db:3306/databasename?useUnicode=true&characterEncoding=utf8
[root@izbp1b5k5bjps0dw8owk7tz mysql]# docker run --name mysql -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.22
c7378e84c19b0baa448d687c089ef8cc0ce058f71b2f79d8801fc9be7bd2c5b4
[root@izbp1b5k5bjps0dw8owk7tz mysql]# docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES
c7378e84c19b    mysql:5.7.22    "docker-entrypoint.s…"  6 seconds ago    Up 5 seconds    0.0.0.0:3306->3306/tcp  mysql
[root@izbp1b5k5bjps0dw8owk7tz logs]# docker run --name tomcat -p 8080:8080 -v /etc/localtime:/etc/localtime:ro -v /home/tomcat/logs:/usr/local/tomcat/logs -d --link mysql:db tomcat
1458f532ef36e12ad49b4a5d90ff9b38abed00986094225354594a5fe7591362
[root@izbp1b5k5bjps0dw8owk7tz logs]# docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES
1458f532ef36    tomcat       "catalina.sh run"    3 seconds ago    Up 2 seconds    0.0.0.0:8080->8080/tcp  tomcat
c7378e84c19b    mysql:5.7.22    "docker-entrypoint.s…"  About a minute ago  Up About a minute  0.0.0.0:3306->3306/tcp  mysql

总结

以上所述是小编给大家介绍的Docker中Tomcat容器使用Mysql容器的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Docker创建MySQL容器的方法

    本文目的是创建一个MySQL的image,并且在新创建出来的容器里自动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个目录并在目录下创建一个Dockerfile,文件内容如下 FROM centos:centos6 MAINTAINER Fanbin Kong "kongxx@hotmail.com" RUN yum install -y mysql-server mysql RUN /etc/init.d/mysqld start &&\ mysql -e

  • 详解Docker创建Mysql容器并通过命令行连接到容器

    拉取网易蜂巢的mysql-server:5.6 docker pull hub.c.163.com/nce2/mysql:5.6 创建mysql5.6容器 1master+3个slave docker run --name mysql-master -d -P hub.c.163.com/nce2/mysql:5.6 docker run --name mysql-slave1 -d -P hub.c.163.com/nce2/mysql:5.6 docker run --name mysql-

  • Docker创建一个mysql容器并保存为本地镜像

    查找docker hub上的镜像 [root@wls12c ~]$ docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relati... 2903 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Crea... 190 [OK] centurylink/mysql

  • Docker容器中Mysql数据的导入/导出详解

    前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢? 解决办法其实还是用mysqldump命令,但是我们需要进入docker的mysql容器内去执行它,并且通过配置volumes让导出的数据文件可以拷贝到宿主机的磁盘上 所以操作步骤就可以分为: 配置docker的volumes 进入docker的mysql容器,导出数据文件 至于数据导入,太过简单,就不说了 先来看看mysqldump命令常见选项: --all-datab

  • 使用Docker容器搭建MySql主从复制

    1. 编写主MySQL的Docker文件 新建文件夹,命名为MySQL-master-v1.在文件夹mysql-master-v1中新建文件Dockerfile和master.cnf.笔者推荐使用的编辑器是Visual Studio Code.利用编辑器将这两个文件的编码设置成UTF-8.因为本文介绍安装到Linux系统下,所以笔者建议读者把换行符设置成LF,以兼顾Linux操作系统.按照如下内容编写这两个文件. Dockerfile FROM mysql:5.7 # set timezone

  • Docker创建运行多个mysql容器的方法示例

    1.使用mysql/mysql-server:latest镜像快速启动一个Mysql实例 docker run --name ilink_user_01 -e MYSQL_ROOT_PASSWORD=123456 0d 0p 3307:3306 mysql/mysql-server:latest ilink_user_01是容器名称,通过--name指令指定 123456为数据库root的密码,通过-e指定环境MYSQL_ROOT_PASSWORD为123456,-e (指定容器内的环境变量)

  • Docker创建Mysql容器的简单步骤

    前言 前面我们已经安装好了Docker,也简单了解了Docker.下面就来给大家介绍下Docker创建Mysql容器的简单步骤,话不多说了,来一起看看详细的介绍吧 步骤如下 1.启动docker服务 [root@docker ~]# systemctl start docker 2.查看docker里面的镜像 [root@docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos/mysql-57-centos7 la

  • 详解通过Docker搭建Mysql容器+Tomcat容器连接环境

    1.实验目的:web容器能访问部署在另外容器中的MySQL 2.步骤1:拉取mysql镜像,拉取命令如下: docker pull mysql//官网的最新mysql进行 3.步骤2:拉取tomcat镜像,拉取命令如下: docker pull tomcat --name xuguokun/jdk-tomcat 4.步骤3:创建mysql的一个容器,容器的名字是mymysql,创建命令如下: 复制代码 代码如下: docker run --name mymysql -p 3306:3306  -

  • Docker多容器连接(以Tomcat+Mysql为例)

    Docker提供了多个容器直接访问的方法,最简单的方式是直接使用端口映射-p参数指定映射的端口或者-P映射所有端口,多个容器直接通过网络端口进行访问. 但网络端口映射方式并不是Docker中连接多个容器的唯一方式,更安全的方法是可以使用Docker的连接系统(--link)连接多个容器,当容器连接到一起时,接受者容器就可以看到源容器的信息. 以Tomcat + Mysql为例,建立容器之间的连接 在容器直接建立连接要使用--link选项 --link <name or id>:alias 这里

  • docker连接spring boot和mysql容器方法介绍

    在之前使用docker部署运行了Spring Boot的小例子,但是没有使用数据库.在这一篇中,介绍docker如何启动mysql容器,以及如何将Spring Boot容器与mysql容器连接起来运行. docker基本命令 首先熟悉一下在操作过程中常用的docker基本命令: docker images:列出所有docker镜像 docker ps:列出所有运行中的容器,-a参数可以列出所有容器,包括停止的 docker stop container_id:停止容器 docker start

随机推荐