欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker安装mysql5.7和tomcat8.5

程序员文章站 2022-04-14 10:40:37
...

tomcat和mysql是搭建web服务常用的服务器, 这里进行简明安装和测试.

环境

  • 阿里云centos7.5
  • docker 19.0
  • 安装软件版本
    • mysql 5.7.30
    • tomcat 8.5.55

准备

查看docker 本地镜像

docker images

在docker公共仓库搜索镜像

docker search 组织或名称 : 标签

[aaa@qq.com ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   9525                [OK]                
mariadb                           MariaDB is a community-developed fork of MyS…   3457                [OK]                
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   698                                     [OK]
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   75                                      
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   69                                      
centurylink/mysql                 Image containing mysql. Optimized to be link…   61                                      [OK]
deitch/mysql-backup               REPLACED! Please use http://hub.docker.com/r…   41                                      [OK]
bitnami/mysql                     Bitnami MySQL Docker Image                      39                                      [OK]
tutum/mysql                       Base docker image to run a MySQL database se…   35                                      
schickling/mysql-backup-s3        Backup MySQL to S3 (supports periodic backup…   30                                      [OK]
prom/mysqld-exporter                                                              28                                      [OK]
linuxserver/mysql                 A Mysql container, brought to you by LinuxSe…   25                                      
centos/mysql-56-centos7           MySQL 5.6 SQL database server                   19                                      
circleci/mysql                    MySQL is a widely used, open-source relation…   19                                      
databack/mysql-backup             Back up mysql databases to... anywhere!         18                                      
mysql/mysql-router                MySQL Router provides transparent routing be…   15                                      
arey/mysql-client                 Run a MySQL client from a docker container      14                                      [OK]
openshift/mysql-55-centos7        DEPRECATED: A Centos7 based MySQL v5.5 image…   6                                       
fradelg/mysql-cron-backup         MySQL/MariaDB database backup using cron tas…   6                                       [OK]
genschsa/mysql-employees          MySQL Employee Sample Database                  5                                       [OK]
devilbox/mysql                    Retagged MySQL, MariaDB and PerconaDB offici…   3                                       
ansibleplaybookbundle/mysql-apb   An APB which deploys RHSCL MySQL                2                                       [OK]

可以看到有MySQ的镜像, 但是上边不一定是我们要的, 第一个可能是mysql8.0, 因此我们在下载的时候需要指定标签(:tag), 如果不指定默认使用(:latest)下载最新镜像.

下载镜像

docker pull mysql:5.7
docker pull tomcat:8.5.55

查看已下载镜像

docker images

[aaa@qq.com ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 a4fdfd462add        29 hours ago        448MB
tomcat              8.5.55              f19c56ce92a8        5 days ago          529MB
tomcat              latest              1b6b1fe7261e        5 days ago          647MB

安装

到这里我们要用的镜像已经下载好了, 接下来进行安装.

因为容器关闭后,其中的数据就会消失,因此要使用卷来使容器和宿主及共享数据。

数据卷是一种docker容器和宿主及共享数据、容器数据持久化存储的技术。卷连接的目标是文件夹/文件,与容器连接的文件夹就像一个外接的硬盘,使二者共享数据。

安装mysql

1.在/opt下创建mysql文件夹(存放数据和日志文件)

cd /opt
mkdir mysql
cd mysql

2.安装容器

$ docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

  • -p 3306:3306:映射容器与宿主机的端口(第一个物理机端口,第二个容器端口)。
  • -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
  • -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
  • -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
  • -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
  • -d: 后台运行容器,并返回容器ID
    这里-e特别重要! 如果不写这个选项, 则在初始化登陆mysql比较麻烦.

3.查看容器安装情况

docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
c3af4de3bbbd        mysql:5.7           "docker-entrypoint.s…"   10 seconds ago        Up 10 hours         33060/tcp, 0.0.0.0:3360->3306/tcp   mymysql
  • status为"Up"表示正在运行.

5.在容器登陆mysql

a)进入容器bash

docker exec -it mymysql /bin/bash

b)登陆mysql

mysql -uroot -p123456

c)登陆MySQL成功
docker安装mysql5.7和tomcat8.5

安装tomcat

1.在/opt下创建tomcat目录

cd /opt
mkdir tomcat
cd tomcat

  • tomcat目录下用来存放容器和宿主机共享数据的文件夹webapps

2.安装容器

docker run -d -p 8080:8080 --name mytomcat -v $PWD/webapps:/usr/local/tomcat/webapps tomcat:8.5.55

  • d 使容器在后台运行
  • -p 8080:8080 映射容器与宿主机端口(第一个物理机端口,第二个容器端口)
  • -v 指定容器数据卷, 将/opt/tomcat/webapps挂载到容器/usr/local/tomcat/webapps

3.查看安装情况

docker ps -a

4.准备测试tomcat的环境
a) 进入tomcat容器

docker exec -it mytomcat /bin/bash

  • exec 命令, 退出容器后容器不关闭
//进入容器
[aaa@qq.com ~]# docker exec -it mytomcat /bin/bash
aaa@qq.com:/usr/local/tomcat# ls -l
total 156
-rw-r--r-- 1 root root 19318 May  5 22:14 BUILDING.txt
-rw-r--r-- 1 root root  5408 May  5 22:14 CONTRIBUTING.md
-rw-r--r-- 1 root root 57011 May  5 22:14 LICENSE
-rw-r--r-- 1 root root  1726 May  5 22:14 NOTICE
-rw-r--r-- 1 root root  3255 May  5 22:14 README.md
-rw-r--r-- 1 root root  7136 May  5 22:14 RELEASE-NOTES
-rw-r--r-- 1 root root 16262 May  5 22:14 RUNNING.txt
drwxr-xr-x 2 root root  4096 May 16 12:11 bin
drwxr-xr-x 1 root root  4096 May 22 09:57 conf
drwxr-xr-x 2 root root  4096 May 16 12:11 lib
drwxrwxrwx 1 root root  4096 May 22 09:57 logs
drwxr-xr-x 2 root root  4096 May 16 12:11 native-jni-lib
drwxrwxrwx 2 root root  4096 May 16 12:11 temp
drwxr-xr-x 7 root root  4096 May 22 09:52 webapps
drwxr-xr-x 7 root root  4096 May  5 22:12 webapps.dist
drwxrwxrwx 1 root root  4096 May 22 09:57 work

b) 拷贝webapps.dist目录下的文件到webapps中

cp -r webapps.dist/* webapps/

  • -r 递归拷贝

c) 重启tomcat

//进入tomcat的bin目录
cd ./bin
//关闭
./shutdown.sh
//启动
./startup.sh

5.输入ip地址测试, 显示主页, tomcat安装成功
docker安装mysql5.7和tomcat8.5

完,有问题请指正。