Docker-MySql安装配置
下载mysql
docker pull mysql:8.0.26
基本运行(不推荐)
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
使用该方式运行配置文件不利于修改,当容器删除后数据文件也会丢失,可以将配置文件路径和数据文件路径映射到宿主机中
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:8.0.26
带参数运行
启动命令
docker run --name=mysql1 \
-v /adocker/mysql1/conf:/etc/mysql/conf.d \
-v /adocker/mysql1/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123 \
-p 33306:3306 \
-d mysql:8.0.26
参数说明
-v /adocker/mysql1/conf:/etc/mysql/conf.d \ #映射配置文件路径
-v /adocker/mysql1/data:/var/lib/mysql \ #映射数据库文件路径
-e MYSQL_ROOT_PASSWORD=123 \ #设置密码
-p 33306:3306 \ #映射端口
-d mysql:8.0.26 #后台启动
配置修改
执行了上面代码后会在宿主机(centos)的根目录下创建/adocker/mysql1/conf 配置文件目录;
/adocker/mysql1/data 数据文件目录
中文乱码问题:
在/adocker/mysql1/conf 路径下新建my.cnf文件添加如下配置
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
vi /adocker/mysql1/conf/my.cnf
数据备份:
创建的数据库相关文件存放在/adocker/mysql1/data路径下
重启测试
重启
# mysql1是启动时设置的容器名
docker restart mysql1
进入mysql
首先进入容器的控制面板
docker exec -it mysql1 /bin/bash
进入mysql
mysql -uroot -p123
查看编码
show variables like "%char%";
可以看到编码修改成功(utf8mb4)
配置远程访问
进入mysql
use mysql; #使用该命令进入“mysql”这个自带的库
select host, user, authentication_string, plugin from user; # 查看用户信息,如果有就不需要执行下面的代码
update user set host="%" where user="root"; # 任意ip都可访问(允许远程连接数据库)
flush privileges; #立即生效
quit; #退出登录
Navicat连接测试
使用Navicat连接时报错
执行以下代码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY "123";
再次连接成功
Docker-Tomcat安装
下载Tomcat
docker pull tomcat:9.0
后台运行
# -d 后台运行; -p映射端口 --name 启动的名 tomcat:8.0 镜像名*
#docker run -d -p 9090:8080 --name=tomcat1 tomcat:9.0
# 为了方便部署war包还是吧webapps映射到宿主机中
docker run -d --name=tomcat1 -v /adocker/tomcat1/webapps:/usr/local/tomcat/webapps -p 9091:8080 tomcat:9
#有时会提示权限不足,添加--privileged=true
docker run -d --name=tomcat1 -v /adocker/tomcat1/webapps:/usr/local/tomcat/webapps --privileged=true -p 9091:8080 tomcat:9
war包部署测试
测试包地址
新建customers数据库,执行SQL文件
修改程序数据库连接信息
上传war包到宿主机映射文件夹下
浏览器访问