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 ceyum 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.18demean模式运行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 
