使用 mysql docker 镜像
2016-12-11 16:22
776 查看
使用 mysql docker 镜像
本文按 mysql 官方指南做了简化,按应用场景讲述了下载,启动,客户端与服务器通讯,发布主机服务等。类似 Redis docker 也就会用了。准备
假定你对 mysql 有一定了解完成了 centos 7 的 docker 安装
首先在 dev.aliyun.com 上找到 mysql 官方镜像,然后查看详情,就有英文使用手册1。
1、下载 mysql 镜像
命令:dockor pull mysql:tag
案例:
sudo dockor pull mysql:5.7 sudo dockor images
2、启动 mysql server 和 client
启动 mysql 服务器,命令:sudo docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
案例:
sudo docker run --name mysql1 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 sudo docker ps
启动 mysql 客户端,命令:
docker run -it --link mysql1:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
不得不惊讶于在不知道容器地址等信息的条件下,客户机如何与服务器通讯的。以下是一些 docker run 的知识2。
命令格式:
sudo docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
一些 OPTIONS:
-d 容器在后台运行
-it 容器在前台,且使用控制台的 stdin 和 stdout 作为容器的 stdin 和 stdout
–rm 容器在前台,且命令进程退出后,自动清理容器
–name container-name 定义运行容器的名字
-e ENV-NAME=value 定义容器环境变量,会覆盖当前容器的设定
–link container-name:alias 连接容器环境设定
3、容器之间的通讯
--link container-name:alias会导致服务容器暴露的环境信息导入当前容器,例如:
sudo docker run -it --rm --link mysql1:mysql_alias mysql /bin/bash -c export 输出: declare -x GOSU_VERSION="1.7" declare -x HOME="/root" declare -x HOSTNAME="e407cd8771cc" declare -x MYSQL_ALIAS_ENV_GOSU_VERSION="1.7" declare -x MYSQL_ALIAS_ENV_MYSQL_MAJOR="5.7" declare -x MYSQL_ALIAS_ENV_MYSQL_ROOT_PASSWORD="root" declare -x MYSQL_ALIAS_ENV_MYSQL_VERSION="5.7.16-1debian8" declare -x MYSQL_ALIAS_NAME="/silly_kirch/mysql_alias" declare -x MYSQL_ALIAS_PORT="tcp://172.17.0.2:3306" declare -x MYSQL_ALIAS_PORT_3306_TCP="tcp://172.17.0.2:3306" declare -x MYSQL_ALIAS_PORT_3306_TCP_ADDR="172.17.0.2" declare -x MYSQL_ALIAS_PORT_3306_TCP_PORT="3306" declare -x MYSQL_ALIAS_PORT_3306_TCP_PROTO="tcp" declare -x MYSQL_MAJOR="5.7" declare -x MYSQL_VERSION="5.7.16-1debian8" declare -x OLDPWD declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" declare -x PWD="/" declare -x SHLVL="1" declare -x TERM="xterm"
其实,这时你检查主机的网络设置,多了一个
桥接(docker0),它的IP是
127.17.0.1。
主机,与容器在一个桥接的网段,它们之家是可以直接通讯的。
4、其他应用场景
相关 docker run 的 OPTIONS:-p [host-port]:[container-port] 发布容器端口,暴露在主机端口。常用格式:主机端口:容器端口
-v [host-dir]:[container-dir]:[rw|ro] 将主机文件目录挂载入容器目录,实现文件共享。
4.1 容器服务成为主机服务
通过容器端口发布,能访问主机的端口机器都可以获得容器服务,例如:sudo docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
这时,主机客户端使用主机 IP 地址和端口也能访问 容器 mysql2 中的服务。
4.2 直接进入容器(后台)执行操作
有时,我们需要管理后台容器,docker exec container-name 最方便sudo docker exec -it mysql1 /bin/bash mysql -uroot -p
熟悉的客户端就出来了。
4.3 指定 my.ini 和 数据存储
我们需要做集群、修改字符集支持,就需要指定 my.ini 配置文件。当然,你可以直接用 docker exec 进入,修改 my.ini 直接发布新镜像。
mysql 官方镜像早考虑到你的需要,仅需在 run 命令中加入
-v /my/custom:/etc/mysql/conf.d其中,/etc/mysql/conf.d 是挂载点,
你可以用 /my/custom 下的 my.ini 配置容器中 mysql。
同样,使用
-v /my/own/datadir:/var/lib/mysql挂载本地存储。
小
a756
结
mysql 容器,简化了 mysql 的安装与部署。特别合适想了解读写分离等技术的人群。如果你完成了 mysql 配置,可尝试 Redis 配置。。。
【参考】
官方指南。 /mysql/”>https://hub.docker.com//mysql/ ↩
docker run 命令。 http://www.open-open.com/lib/view/open1422492851548.html ↩
相关文章推荐
- docker使用mysql镜像
- MySQL 官方 Docker 镜像的使用
- docker mysql镜像安装和使用
- 使用docker的mysql镜像
- Docker学习笔记2-mysql镜像的使用和外网访问
- docker上安装使用mysql镜像
- docker入门(一)----mysql镜像使用
- docker 的mysql镜像使用手册 官网原文 日期2017-05-25
- docker下的Mysql镜像的使用方法
- mysql 官方docker镜像使用教程
- mysql 官方docker镜像使用教程
- 【系列7】使用Dockerfile创建带mysql的Centos Docker镜像
- 在CentOS中使用 MySQL 的 Docker 镜像
- 详解docker下的Mysql镜像的使用方法
- MySQL 官方 Docker 镜像的使用
- docker之mysql镜像使用
- MySQL 官方 Docker 镜像的使用
- 【系列6】使用Dockerfile创建带mysql5.6的Centos Docker镜像
- Docker Mysql镜像使用
- Docker 使用方法总结之:镜像