Docker 使用心得以及部署一个Mysql container


最近公司在使用Docker,确实是一个很好用的东西,就像集装箱一样,一层一层的堆叠,操作简单,实用性强,性能也特别好,玩法有很多,可以结合自己项目的实际情况来定制。

 

安装 Docker

 

方法可以在官网上看,www.docker.com
在Ubuntu 14.x 以上版本是无缝安装:

$ which curl
$ sudo apt-get update
$ sudo apt-get install curl 
(如果有了curl忽略上面的3步)
$ curl -fsSL https://get.docker.com/ | sh
 

完成后,docker 就安装完成了,打 sudo docker version就可以查看当前的docker的版本号。
Docker 使用心得以及部署一个Mysql container

 
Docker 使用心得以及部署一个Mysql container
 

Mac 和 Windows的安装有点小麻烦,需要安装官方的 Docker Toolboxhttps://www.docker.com/products/docker-toolbox 实际上就是一个虚拟机,然后在虚拟机中运行Ubuntu来安装Docker。

 

下载Mysql的image

 

Mysql 可以从官方的dockerhub上去pull,也可以使用aliyun的加速服务,速度确实快不少,docker 自己的registry是假设在AWS上的,而AWS国内的访问速度简直不能忍。

docker pull mysql:5.5
 如果后面不带(tag)版本号,默认是latest的版本哦,也就是最后的一个版本,等待下载完成后,用 docker images 命令就可以看到你当前的docker都下载了哪些image。

Docker 使用心得以及部署一个Mysql container
 

Docker 使用心得以及部署一个Mysql container

开始运行这个container

image:映象,以这个mysql的image为例,可以理解成一个虚拟机装好了mysql服务,可以通过docker images命令查看
container:容器,image 启动后就是 container,可以停止和启动,但是删除后就没有了,可以通过docker ps查看当前运行的所有 container


Docker 使用心得以及部署一个Mysql container
  

因为container是无法保存数据的,随用随丢的,删除就没有了,所以不适合把数据保存在container上,所以我们把mysql的服务跑在container中,数据呢,存放在宿主机器中。

注意:以下的方案可能不适合在 Mac 和 Windows 上实施,至少是在 Mac 上不行的,我试过,会因为宿主机器的 mysql 用户和
container 中的 mysql 用户不一致而无法实现

 

在宿主机器上建立一个文件夹,用来存在 mysql 的 data (数据目录),如/home/tom/mysqldata,然后运行这个image,启动container

docker run --name db -e MYSQL_ROOT_PASSWORD=root -d -v /home/tom/mysqldata:/var/lib/mysql/bluemountain mysql:5.6 --lower_case_table_name=1
 

参数解释:

  • --name 指定 container 的名字,这里叫 db

  • -e 指定 container 中 mysql 的 root 用户密码

  • -v 目录挂载,就是把我们自己建立的数据目录,挂载到 container 中 mysql 的数据目录,这样数据就写到宿主机器了

  • --lower_case_table_name=1 指定 mysql 的一些配置

 

启动完成后,打docker ps 命令,就可以看到当前运行的所有 container
Docker 使用心得以及部署一个Mysql container

 

 

使用这个 container

 

到这里为止,mysql 的 container 就启动完成了,但是别的程序的 container 怎么用呢?其实很简单,在启动其他 container 的时候,绑定这个 container 就行。

dk run --name bm -d --link db:db bluemountain
 

--link db:db1就表示当前运行的 container 中可以使用 db1 这个名字访问名为db 的container

 

如果有错误,希望得到指正.

doen.

相关推荐