docker常用安装【tomcat+mysql】(十四)

1,安装步骤梳理

  1. 搜索镜像
  2. 拉取镜像
  3. 查看镜像
  4. 启动镜像
  5. 停止容器
  6. 移除容器

2,安装tomcat

docker hub好查找tomcat镜像  docker search tomcat

从docker hub上拉取tomcat镜像到本地  docker pull tomcat

使用docker images查看是否有拉取到tomcat

使用tomcat镜像运行镜像成为容器  

    docker run -it -p 8080:8080 tomcat 

                -p 主机端口:容器端口

                -P 随机分配端口

                -i  交互

                -t 终端  


3,安装mysql

docker hub上查找mysql镜像  docker search mysql

docker常用安装【tomcat+mysql】(十四)_第1张图片

docker hub上拉取mysql镜像到本地  docker pull mysql:5.7

docker常用安装【tomcat+mysql】(十四)_第2张图片

 

使用mysql5.7镜像创建容器运行存在问题

这是因为mysql镜像一启动中在加设置用户名和密码

修改成下面的命令

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

注意:如果需要数据持久化,则挂载/var/lib/mysql目录,下次重启时则保存数据,其中--privileged=true为用户权限开启:

docker run -p 3306:3306 -v /usr/sqldata/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d --privileged=true a4fdfd462add

发现启动起来了

4,使用navcat连接一下

docker常用安装【tomcat+mysql】(十四)_第3张图片

如果是5.7的数据库不会报错

发现报错,这是因为docker 的mysql里面的localhost  -root 的密码是启动时设置的是123456现%-root的没有设置

下面是解决方法

 

1, 进入mysql的docker 容器

docker exec -it mysql /bin/bash

2,登陆mysql

mysql -u root -p

输入密码

3,使用mysql数据库

use mysql

4,执行修改密码的命令

update user set password=password(123456) where host='%'

5,重启mysql的docker 容器

exit退出

exit退出mysql容器

docker restart mysql

再就可以进行远程连接了哦

docker常用安装【tomcat+mysql】(十四)_第4张图片

如果出现使用宿主机IP无法访问的情况(可能是防火墙没关闭) 在宿主机里面执行如下命令

请顺序运行以下命令:

nmcli connection modify docker0 connection.zone trusted

systemctl stop NetworkManager.service

firewall-cmd --permanent --zone=trusted --change-interface=docker0

systemctl start NetworkManager.service

nmcli connection modify docker0 connection.zone trusted

systemctl restart docker.service

再重启mysql和tomcat的容器


5,相关文件地址配置 

可以在运行容器时设置 :

docker run -p 3306:3306 --name mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql

要求对应路径对应文件已存在,才能成功挂载相内容到对应位置,所以可以先启动一个没挂载的mysql容器,先cp到宿主机,其中命令为 docker cp 容器ID:容器目录 宿主机目录

命令说明:

-p 3306:3306:将容器的3306端口映射到主机的3306端口

-v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf

-v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs

-v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data

-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

你可能感兴趣的:(docker,docker,mysql)