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 connectionid is 8 Serverversion : 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;.
版权声明:本文为Jerry_Pan1990原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。