携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情
安装步骤梳理
- 搜索镜像
- 拉取镜像
- 查看镜像
- 启动镜像
- 停止容器
- 移除容器
安装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 终端
安装mysql
- docker hub上查找mysql镜像 docker search mysql
- docker hub上拉取mysql镜像到本地 docker pull mysql:5.7
- 使用mysql5.7镜像创建容器运行存在问题
- 这是因为mysql镜像一启动中在加设置用户名和密码
- 修改成下面的命令
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
使用navcat连接一下
如果是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
再就可以进行远程连接了哦
如果出现使用宿主机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的容器
相关文件地址配置
- 可以在运行容器时设置 :
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
但要求对应路径对应文件已存在,才能成功挂载相内容到对应位置。 命令说明:
- 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用户的密码