欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-21 23:43:33
...


最近公司在使用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
            
    
    博客分类: DockerMysql mysqldocker
 

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
            
    
    博客分类: DockerMysql mysqldocker
 

开始运行这个container

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


Docker 使用心得以及部署一个Mysql container
            
    
    博客分类: DockerMysql mysqldocker
  

因为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

 

 

使用这个 container

 

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

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

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

 

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

doen.

  • Docker 使用心得以及部署一个Mysql container
            
    
    博客分类: DockerMysql mysqldocker
  • 大小: 90 KB
  • Docker 使用心得以及部署一个Mysql container
            
    
    博客分类: DockerMysql mysqldocker
  • 大小: 122.7 KB
  • Docker 使用心得以及部署一个Mysql container
            
    
    博客分类: DockerMysql mysqldocker
  • 大小: 111.9 KB
相关标签: mysql docker