Docker安装MySQL

首先你要先安装docker,安装教程这里简单概括一下

安装docker

1、检查内核版本,必须是3.10及以上
uname -r
(版本不够)yum update 升级软件包及内核
2、安装docker
yum install docker
3、输入y确认安装
4、查看docker版本:
docker -v
5、启动docker
systemctl start docker
5、开机启动docker
systemctl enable docker
6、停止docker
systemctl stop docker
7、卸载docker(想要重新安装其他版本)
yum remove docker-*

docker常用命令及操作:

检索:docker search 关键字   eg:docker search redis,然而我们更多会去docker hub上检索镜像的详细信息,如镜像的tag。

拉取:docker pull 镜像名:tag   eg:docker pull mysql:5.5。 说明下:tag表示标签,多为软件的版本。不写,默认拉取是latest

列表:docker images   查看所有本地镜像

删除:docker rmi image-id  删除指定的本地镜像,说明下image-id可以通过docker images查看

 

容器(container)

镜像好比我们的安装程序,我们运行镜像会产生的一个容器,类比我们的一个个程序。

1、搜索镜像
docker search tomcat
2、拉取镜像
docker pull tomcat
3、根据镜像启动容器
docker run --name tomcat01 -d tomcat:latest
4、查看运行中的容器
docker ps
5、停止运行中的容器
docker stop  容器的id
6、查看所有的容器
docker ps -a
7、启动容器
docker start 容器id
8、删除一个容器
 docker rm 容器id
9、启动一个做了端口映射的tomcat
docker run -d -p 8888:8080 tomcat
-d:后台运行
-p: 将主机的端口映射到容器的一个端口    主机端口:容器内部的端口

10、为了演示简单关闭了linux的防火墙
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙
11、查看容器的日志
docker logs 容器名字/容器id
12、重启docker
systemctl restart docker

更多命令参看:docker命令,也可以参考每一个镜像的文档。

 

安装MySQL

我最近在捣鼓MySQL主从复制,需要在docker中安装MySQL。

直接在docker hub上找到想安装的版本,这里我们拉取标签为5.6的镜像

docker pull mysql:5.6
出现连接超时:
Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

这是因为docker默认的源为国外官方源,下载速度较慢,改为国内源即可。

配置docker国内镜像源:

编辑docker默认的配置文件daemon.json。如果没有新建,有则修改。

vim /etc/docker/daemon.json

添加下面配置,保存退出    ps:我找了好几个源都没速度

{
"registry-mirrors":["http://18817714.m.daocloud.io"]
}

重新加载配置文件:

systemctl daemon-reload

重启docker: 

systemctl restart docker

重新拉取镜像: 

docker pull mysql:5.6

出现下图说明拉取镜像成功 

查看镜像: 

docker images | grep mysql

 

#在宿主机中创建保存mysql配置的目录
mkdir -p /mysql/conf
cd mysql
mkdir data
mkdir logs
#创建my.cnf文件
touch /conf/my.cnf


#my.cnf添加自己的配置
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password 

运行镜像产生容器:

docker run --name mysql -p 3306:3306 --privileged=true -v /mysql/conf:/etc/mysql/conf.d -v /mysql/logs:/logs -v /mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.6

这里参数说别下:

  • --name :给容器起个名字。
  • -p :将主机的端口映射到容器的一个端口 (主机端口:容器内部的端口)。
  • -v /mysql/conf:/etc/mysql/conf.d :把主机当前目录mysql/conf挂载到容器的/etc/mysql/conf.d文件夹里,改mysql的配置文件只需要把mysql配置文件放在自定义的文件夹(/mysql/conf),data和logs目录同理。
  • -e MYSQL_ROOT_PASSWORD=123 :初始化root用户密码。
  • -d 后台运行的mysql:tag,并返回容器ID
  • --restart always:开机启动,这里不做设置
  • --privileged=true:提升容器内权限,使容器内的root真正拥有root权限,否则容器内root只是外部普通用户权限

在容器内默认不支持vim,如果要在docker容器内使用vim,哪个容器要用就需要各自安装vim(yum install vim)。所以对于所有涉及到数据和配置的,都不应该放在容器内部。应该用-v来挂载外部数据目录。

查看运行的容器: 

docker ps 

我们可以看到容器已经运行成功了。 

测试

官网介绍docker exec命令可以允许我们在一个Docker容器内运行命令。

 

可以通过以下命令进入容器内,运行mysql命令 

docker exec -it mysql bash

#连接mysql
mysql -uroot -p  

ok,docker内运行mysql没问题。

通过Navicat客户端工具测试链接也成功。

 

至此,docker安装MySQL,大功告成 !

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值