docker初识:运行mysql实例
环境
- CentOS 7.3 64bit
安装docker
移除旧版本Docker
yum remove docker docker-common docker-selinux docker-engine
设置Docker仓库
2.1 安装所需要的包
yum install -y yum-utils device-mapper-persistent-data lvm2
2.2 设置添加稳定版的Docker仓库
yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装 DOCKER CE
3.1 更新
yum
yum makecache fast
3.2 安装最新版的docker ce
yum -y install docker-ce
3.3 也可以安装指定版本的docker ce
- 列举可用的docker ce
yum list docker-ce.x86_64 –showduplicates | sort -r
- 安装指定版本
yum install docker-ce-<VERSION>
- 列举可用的docker ce
启动Docker
systemctl start docker
查看Docker版本
docker -v
卸载Docker(Optional)
6.1 卸载docker安装包
yum remove docker-ce
6.2 删除所有的 images, containers, volumes(一些自定义的配置文件需要自己手动删除)
rm -rf /var/lib/docker
安装Docker compose
下载安装1.14.0版本的Compose
curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s
-
uname -m` > /usr/local/bin/docker-compose赋予可执行权限
chmod +x /usr/local/bin/docker-compose
查看版本号验证是否安装成功
docker-compose -v
docker运行mysql实例
下载官方的mysql镜像
docker pull mysql:5.7.18
启动mysql
1
docker run --name mysql_db -p 3306:3306 -v /home/docker/mysql/logs:/data/logs/mysql -v /home/docker/mysql/data:/var/lib/mysql -v /home/docker/mysql/conf/:/etc/mysql/conf.d -e MYSQL_DATABASE=opencart -e MYSQL_ROOT_PASSWORD=Ao@1234567890 -d mysql:5.7.18
参数说明:
-p 3306:3306
(“port_you_want” : “exposed_port_from_dockerfile”) 端口映射--name mysql_db
指定docker container名称为mysql_db-v /home/docker/mysql/data:/var/lib/mysql
映射container中mysql的数据目录/var/lib/mysql
到本地/home/docker/mysql/data
-v /home/docker/mysql/conf/:/etc/mysql/conf.d
映射配置文件目录-v /home/docker/mysql/logs:/data/logs/mysql
映射日志文件-e MYSQL_DATABASE=opencart
设置启动环境参数MYSQL_DATABASE(初始化时创建的数据库)-e MYSQL_ROOT_PASSWORD=password
设置初始化的mysql root用户密码-d mysql:5.7.18
demean模式运行mysql:5.7.18
详细参数说明参考Mysql Docker镜像文档
附上简短的my.cnf配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19######################### my.cnf #######################################
# 对应日志文件需要手动创建,并赋予mysql可读写权限,否则container启动不成功
# 错误日志
log-error=/var/log/mysql/error.log
# 打开全查询日志. 所有的由服务器接收到的查询 (甚至对于一个错误语法的查询)
# 都会被记录下来. 这对于调试非常有用, 在生产环境中常常关闭此项.
general_log=ON
general_log_file=/var/log/mysql/mysql.log
# 慢查询日志
slow_query_log=on
long_query_time=2 #2s
slow_query_log_file=/var/log/mysql/slowquery.log
# 打开二进制日志功能.
# 在复制(replication)配置中,作为 MASTER 主服务器必须打开此项
# 如果你需要从你最后的备份中做基于时间点的恢复,你也同样需要二进制日志.
#log-bin=/usr/local/mysql/logs/mysql-bin查看启动日志(启动时出错可以观察下是什么原因)
docker logs mysql_db
查看运行中的容器
docker ps
查看所有容器
docker ps -a
安装mysql客户端
yum -y install mysql
连接mysql
mysql -h 127.0.0.1 -uroot -p
停止容器
docker stop mysql_db
启动已有容器
docker start mysql_db
在另一个container中使用mysql
docker run –name some-app –link mysql_db:mysql -d application-that-uses-mysql