Docker安装使用之安装(四)之安装Mysql
镜像下载官网
Docker Hub Container Image Library | App Containerization
安装mysql
docker hub上查找mysql镜像
从docker hub上拉取mysql镜像到本地标签为5.7
1 | #拉取<br>docker pull mysql:5.7<br>#查看<br>docker images mysql:5.7 |
版本命令可以从docker hub查找的页面进行有一个Tags这就是每一个版本
使用mysql
1 | #启动<br>docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7<br>#查看<br>docker ps<br>#进入容器<br>docker exec -it CONTAUNER ID /bin/bash<br>#启动mysql<br>mysql -uroot -p<br>进入进行测试<br>#查看所有表<br>show databases;<br>#创建一个db01数据库<br>create database db01;<br>#进入db01<br>use db01;<br>#创建表<br>create table t1(id int,name varchar(20));<br>#添加数据<br>insert into t1 values(1,'z3');<br>#查看t1<br>select * from t1;<br>#字符隐患<br>show variables like 'character%'<br>#如果不下心删除容器,里面的MySQL数据怎么办<br>#退出docker和mysql<br>exit<br>#查看<br>docker ps<br>#删除mysql<br>docker rm -f<br>#查看<br>docker ps<br><br> |
实战
新MySQL建实例并启动
1 | docker run -d -p 3306:3306 --privileged= true <br>-v /zzyyuse/mysql/log:/ var /log/mysql <br>-v /zzyyuse/mysql/data:/ var /lib/mysql<br>-v /zzyyuse/mysql/conf:/etc/mysql/conf.d <br>-e MYSQL_ROOT_PASSWORD=123456 <br>--name mysql <br>mysql:5.7 |
1 | docker run -d -p 3306:3306 --privileged= true -v /zzyyuse/mysql/log:/ var /log/mysql -v /zzyyuse/mysql/data:/ var /lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 |
查看
1 | docker ps |
第二种
1 | sudo docker pull mysql:5.7 |
创建实例并启动
1 2 3 4 5 6 | docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/ var /log/mysql \ -v /mydata/mysql/data:/ var /lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7 |
查看镜像
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | docker ps<br>#进入mysql容器中<br>cd /zzyyuse/mysql/conf<br>#查看<br>ls -l<br>#添加<br>vim my.cnf<br>#插入以下内容[client] default -character- set = utf8 [mysql] default -character- set = utf8 [mysqld] init_connect= 'SET collation_connection = utf8_unicode_ci' init_connect= 'SET MANES utf8' character- set -server = utf8 collation-server = utf8_unicode_ci skip-character- set -client-handshake skip-name-resolve<br>#保存<br>:wq<br>#查看是否添加成功<br>cat my.cnf<br>#重新启动MySQL容器实例<br>docker restart mysql<br>#进入容器<br>docker exec -it mysql /bin/bash#启动mysql<br>mysql -uroot -p<br>#查看字符隐患<br>show variables like 'character%' #查看所有表<br>show databases;<br>#创建一个db01数据库<br>create database db01;<br>#进入db01<br>use db01;<br>#创建表<br>create table t1(id int ,name varchar(20));<br>#添加数据<br>insert into t1 values(1, 'z3' );<br>#查看t1<br> select * from t1;<br>#退出docker和mysql<br>exit<br>#查看<br>docker ps<br>#删除mysql<br>docker rm -f<br>#查看<br>docker ps测试删完后数据还在不会丢失的情况<br>在安装一次就行docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/ var /log/mysql \ -v /mydata/mysql/data:/ var /lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7<br><br> |
Docker进入mysql容器内部
1 | docker exec -it mysql /bin/bash |
查看mysql 位置 ,文件
1 | whereis mysql |
修改mysql配置文件
my.cnf 复制内容
1 2 3 4 5 6 7 8 9 10 11 12 13 | [client] default -character- set = utf8 [mysql] default -character- set = utf8 [mysqld] init_connect= 'SET collation_connection = utf8_unicode_ci' init_connect= 'SET MANES utf8' character- set -server = utf8 collation-server = utf8_unicode_ci skip-character- set -client-handshake skip-name-resolve |
重启mysql
1 2 | docker restart mysql docker ps -a |
docker exec -it 容器ID /bin/bash
1 | docker exec -it mysql /bin/bash |
开机自动启动
1 | docker update mysql --restart=always |
Sonar中myql环境搭建
1 | docker run --name mysql5.7 -v /data/mysql5.7-data:/ var /lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 |
进入容器中创建数据库与用户
进入容器
1 | docker exec -it mysql5.7 bash |
连接数据库
1 | mysql -uroot -p123456 |
创建数据库db_sonar
1 2 3 | create database db_sonar character set utf8 collate utf8_general_ci; flush privileges; |
创建数据库用户,用户名密码都为sonar
1 2 3 | grant all privileges on db_sonar.* to 'sonar' @ '%' identified by 'sonar' with grant option; flush privileges; |
查看mysql容器ip
1 2 3 4 5 6 7 8 9 10 | root@ubuntu:/data# docker exec -it mysql5.7 bash root@ec7039cd8020:/# root@ec7039cd8020:/# cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 ec7039cd8020 |
结果:
由上面命令可以查到,我的容器ip为172.17.0.2
分类:
docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?