docker学习(5) 在mac中创建mysql docker容器

github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像daocloud.io也能找到mysql的镜像,但根据其参考文档在mac上尝试了数次,将mysql数据库文件存储在mac本机时,启动总是报错,大意是docker容器运行时,容器的当前用户mysql,由于权限不足无法mac本机上创建文件,stackoverflow上有人解决了这个问题,参考其解决方法,重新整理了下Dockerfile文件,内容如下(主要是增加了vim的安装,以方便直接在容器内修改mysql配置文件):

FROM mysql:latest

MAINTAINER jimmy.yang <yjmyzz@126.com>
LABEL Descripttion="This image is build for MAC to use mysql" Vendor="GitHub" Version="latest"
RUN apt-get update
RUN apt-get -y install vim
RUN usermod -u 1000 mysql
RUN mkdir -p /var/run/mysqld
RUN chmod -R 777 /var/run/mysqld

将上面这段保存成名为"Dockerfile"的文件,然后在当前目录下,输入:

docker build -t "yjmyzz/mysql-osx:latest" .

注意最后有一个点,-t后的内容为image的tag,可以根据需要修改成自己的内容。build完成后,可用docker images ls确认下是否在本机生成了名为yjmyzz/mysql-osx的镜像,接着就可以创建mysql容器了,示例如下:

docker run -d -h mysql \
  -v /Users/yjmyzz/data/db/mysql:/var/lib/mysql \
  -p 0.0.0.0:3306:3306 --name mysql \
  -e MYSQL_ROOT_PASSWORD=123456 yjmyzz/mysql-osx

上面有几个参数值大家根据需要自行调整:

-v 后面的/Users/yjmyzz/data/db/mysql 为mac本机的目录,用于存放mysql数据库文件(创建前要注意该目录必须为空,且必须是当前登录用户~/下,且要有读写权限)

-p 后面的部分为端口映射

MYSQL_ROOT_PASSWORD=123456为root账号的密码

 

mac上连接验证:

mysql -h192.168.99.100 -uroot -p123456 

上面的ip地址,大家换成自己虚拟机default的IP

 

mysql参数调整:

先进入容器

docker exec -it mysql sh

然后在容器内

vi /etc/mysql/my.cnf

注意:修改完mysql参数后,如果直接在容器内 service mysql restart ,容器就退出了(因为mysql stop完成的瞬间,没有命令在运行,容器生命周期结束),需要在mac机上执行

docker start mysql

 

上传镜象

为了以后使用方便,可以将mac版的mysql镜像上传到daocloud.io,命令如下:

docker login daocloud.io
docker tag yjmyzz/mysql-osx daocloud.io/yjmyzz/mysql-osx:latest
docker push daocloud.io/yjmyzz/mysql-osx:latest

提醒:daocloud push上去的镜像,目前未提供删除功能(客服说是以后会提供),一旦上传了,目前就没办法删除了,所以千万不要在镜像里放一些敏感信息。  

参考文章:

1. 官网dockerfile用法 

时间: 2024-10-31 10:02:19

docker学习(5) 在mac中创建mysql docker容器的相关文章

Docker学习路线图 (持续更新中)

Docker学习路线图 Docker基础 101 学习Docker基本概念 Docker容器 Docker镜像 Dockerfile初步概念 练习 安装Docker Toolbox或Docker Engine Docker Toolbox 阿里云镜像源 Docker Engine 阿里云镜像源 配置本地Docker环境 利用Docker Machine创建本地Docker Environment 配置阿里云Docker镜像加速器 管理容器的生命周期与配置 创建.删除.检查.启动.停止容器 ...

在cPanel面板中创建MySQL数据库操作方法

首先需要进入cPanel虚拟主机管理系统界面,在数据库模块下找到MySQL数据库,点击MySQL数据库,进入数据库创建界面: 在输入框里输入想要创建的数据库名称: 完成后,点击一下步,向导将会提示您创建数据库用户名,同时输入密码,如下如图: 提示:数据库用户名和数据都是有前缀的,如storyday_demo而不是demo 接下来是添加用户权限,也就是正在创建的用户,对数据库storyday_demo能有哪些操作权限,如果你不知道如何设置,可以全选: 点击下一步数据库就创建成功了,那么本例子中创建

docker学习(8) 在mac机上搭建私有仓库

docker的私有仓库类似maven的私服,一般用于公司内部搭建一个类似docker hub的环境,这样上传.下载镜像速度较快,本文将演示如何在mac上利用docker-machine搭建无需SSL证书的私有仓库. 一.查看docker-machine虚拟机IP docker-machine ip default 默认情况下docker-toolbox创建的虚拟机名称为default,如果您的虚拟机名字不是这个,上面命令最后的default换成真实的虚拟机名字,假设default分配的IP为19

在Docker中创建应用

本文讲的是在Docker中创建应用,[编者的话]下面内容是在基于Docker,用node.js开发和部署网络应用过程中获得的经验和教训. 本例中,将从头开始开发一个基于Docker的socket.io聊天例子,一直到可以实用,因此希望可以从这些教训中学到什么,例如: 使用Docker开始一个节点应用 不要做"root"敢死队成员 用binds使得test-edit-reload流程更短 在容器内管理node_modules使得重建更快(有一个窍门) 使用npm shrinkwrap确保

创建 多个 MySQL docker 出现错误时

创建 多个 MySQL docker 出现错误时 风来了.fox -- 140505 16:05:59 InnoDB: Using Linux native AIO 140505 16:05:59 InnoDB: Warning: io_setup() failed with EAGAIN. Will make 5 attempts before giving up. InnoDB: Warning: io_setup() attempt 1 failed. InnoDB: Warning: i

Flex中的MySQL管理

学习使用RIA Framework Flex创建MySQL管理UI PHPMyAdmin的出现震撼了业界,这毫无疑问.它当然是基于PHP的最佳应用程序,因为它将MySQL管理界面由命令行的形式改为了web浏览器的形式.不过,虽然它的功能很强大,但使用并不太方便,界面也不够美观.因此,我尝试通过Rich Internet Application框架设计更理想的MySQL前台管理程序. 要达成此目标本可选用Ajax.但我不想处理客户端的不兼容问题.当然,Silverlight也是不错的选择,但它仍不

Word中创建宏的攻略

  宏其实是在我们的Word或者是Excel中,常常会碰到的一个词,也许很多的朋友,不大懂它,但是它的用处真的十分的强大.接下来,感兴趣的用户可以跟小编一起学习一下在Word中创建宏的技巧. Word 可以使用宏记录器录制一系列操作来创建宏 (宏:可用于自动执行任务的一项或一组操作.可用 Visual Basic for Applications 编程语言录制宏.),也可以在 Visual Basic 编辑器 (Visual Basic 编辑器:一种环境,用于编写新的 Visual Basic

docker学习(2) mac中docker-machine使用vmware fusion以及配置国内镜像加速

一.前言 先回顾下上一节创建docker-machine的过程,默认情况下docker toolbox中的docker-machine使用virtual box创建虚拟机,KI首次启动时创建虚拟机的过程,大致相当于下面这条命令: docker-machine create --driver virtualbox default 输出如下: Running pre-create checks... Creating machine... (default) Copying /Users/yjmyz

在 Mac OS X 系统中创建用于 Mac 的 Ubuntu USB 启动盘

在 Mac OS X 系统中创建用于 Mac 的 Ubuntu USB 启动盘 上个月,在戴尔的服务中心丢失我的笔记本后,我买了一台 Macbook Air 笔记本.买回来后我首先做的一些事就是给机器装上双系统,使 Ubuntu Linux 和 Mac OS X 都可用.随后的文章我会介绍如何在 Macbook 上安装 Linux ,刚开始我们需要学习 如何在 Mac OS X 系统中创建用于 Mac 的 Ubuntu USB 启动盘. 在 Ubuntu 系统或 Windows 系统中创建可启动