docker安装mysql5.7 并运行、保证容器及外部的通信

docker 初学者的一些随笔:

1、下载镜像:sudo docker pull mysql:5.7

*********************************************************************************************************************

这一步,就是 先虚拟建一个 mysql ,将其中的 mysql 原生 配置文件拷贝出来,进行自定义修改

1、 拷贝容器中的 数据库信息、my.cnf 到宿主机中,方便维护
docker run  --rm --name mysqlTemp -it  -v /data/mysql3307/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456  mysql:5.7 /bin/bash

-- rm 退出后就删除该容器
-it 交互模式
/bin/bash 进入 bash 命令模式


2、拷贝配置文件(注意这里的拷贝命令,是docker 中的拷贝,而不是宿主机的拷贝)
cp /etc/mysql/my.cnf /var/lib/mysql
将 etc/myql/my.cnf 文件拷贝到 /var/lib/msyql

3、 改变 宿主机下 data 目录的权限
chmod -R 777 /data
防止不同步

3、 在宿主机自定义 my.cnf 的mysql配置文件, 参考附件

*********************************************************************************************************************

2、运行容器: docker run --name mysql3307 --network host -v /data/mysql3306/my.cnf: /etc/ my .cnf   -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci
--name 容器名称
-p 端口映射
-v 配置文件映射:将 宿主机上修改的自定义配置文件,映射到 容器中
挂载的文件修改后,在重启容器后生效
-e MYSQL_ROOT_PASSWORD   设置root密码
-d 守护进程模式运行
-character-set-server --collation-server 字符集设置

--network=host 将主机的IP与容器的IP分享:
这一条是将 容器 和 宿主机的 IP 共享,这样 修改 mysql 端口,就能保证 各个容器、宿主机之间的网络通信。

还有一种办法, 建立网络桥接, 这种方法没有研究透

*********************************************************************************************************************
关闭防火墙:

如果没有安装 iptables:
yum install iptables-services

安装后:
service iptables status 查看状态
service iptables stop 停止
service iptables start 开始

*********************************************************************************************************************

1、 宿主机访问 各个容器的mysql:
mysql -h127.0.0.1 -P3307 -uroot -p

2、
进入容器,访问 msyql
[root@izbp13xko46hud9vfr5s94z ~]
# docker exec -it 356c999b5cd0 bash

root@ 356 c999b5cd0:/ # show databases; bash: show: command not found
root@ 356 c999b5cd0:/ # mysql -uroot -p Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 8 Server version : 8.0.11 MySQL Community Server - GPLCopyright (c) 2000 , 2018 , Oracle and / or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and / or its affiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> show databases;.





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值