docker安装mysql5.7和tomcat8.5
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成功
安装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安装成功
完,有问题请指正。