#MAC OSX环境下 docker安装mysql
Docker 安装
➜ ~ brew cask install docker
➜ ~ docker -v
Docker version 18.09.2, build 6247962
默认安装的docker容器镜像是从官方docker.io上拉取的,由于各种原因导致拉取失败或速度缓慢,我们需要将镜像源切换为国内镜像,推荐用镜像加速器 阿里云加速器 注册账号后,点击容器镜像服务》镜像中心》镜像加速器,找到加速地址,复制 粘贴到docker程序的 Preferences》Daemon》下方Registry mirrors: ,然后Apply & Restart!
以下是几个不错不的镜像源,供参考:
http://141e5461.m.daocloud.io
https://registry.docker-cn.com
http://hub-mirror.c.163.com
https://3*****l5.mirror.aliyuncs.com
https://docker.mirrors.ustc.edu.cn
Mysql 安装
- 首先要获取mysql镜像:
默认获取最新版,需要指定版本号,请使用 mysql:5.7 的格式指定
➜ ~ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
fc7181108d40: Pull complete
787a24c80112: Pull complete
a08cb039d3cd: Pull complete
4f7d35eb5394: Pull complete
5aa21f895d95: Pull complete
a742e211b7a2: Pull complete
0163805ad937: Pull complete
87f18876c3ff: Pull complete
78082f25f167: Pull complete
0a510f055c17: Pull complete
312b0999e433: Pull complete
f864cfdc0264: Pull complete
Digest: sha256:3db7e7a8dc3baa7d5f2bb047cd16155b43015a4ef70ebf07e6b2659a0f3935ec
Status: Downloaded newer image for mysql:latest
➜ ~ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
➜ ~ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest c7109f74d339 2 weeks ago 443MB
➜ ~ docker pull mysql:5.7.14
5.7.14: Pulling from library/mysql
357ea8c3d80b: Pull complete
256a92f57ae8: Pull complete
d5ee0325fe91: Pull complete
a15deb03758b: Pull complete
7b8a8ccc8d50: Pull complete
1a40eeae36e9: Pull complete
833539b56478: Pull complete
4f350efbb7e5: Pull complete
266f161e49c6: Pull complete
b53a75e45220: Pull complete
75196bb75c29: Pull complete
Digest: sha256:3c6e2b9267d8f09112897aa767c75c7115b92d562f1a58c9cda18c366f25cc0e
Status: Downloaded newer image for mysql:5.7.14
➜ ~ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest c7109f74d339 2 weeks ago 443MB
mysql 5.7.14 4b3b6b994512 2 years ago 385MB
➜ ~ docker info
- 启动 mysql 镜像
➜ ~ docker run --name mysql -v /Users/apple/Coding/docker/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.14
命令介绍:
-d(Detached):表示容器将以后台模式运行,所有I/O数据只能通过网络资源或者共享卷组来进行交互。
-p 127.0.0.1:3306:3306:将主机(127.0.0.1)的端口 3306 映射到容器的端口 3306 中。方便以后连接使用。
–name mysql:给容器取名为 mysql,这样方便记忆。
-v /Users/apple/Coding/docker/mysql/data:/var/lib/mysql:将本机的文件目录挂载到容器对应的目录(/var/lib/mysql)中。这样可以通过数据卷实现容器中数据的持久化。
-e MYSQL_ROOT_PASSWORD=123456:-e 表示设置环境变量,此处设置了 mysql root 用户的初始密码为 root
mysql:latest`表示使用 mysql 为 latest 启动一个容器。
执行完上面的命令,就完成了 mysql 在 Docker 中的虚拟化。
- 使用 Navicat Premium 连接 mysql
主机名:localhost
端口:3306
用户名和密码都是: root
-
测试使用mysql
启动 mysql:(这三句 以后常用)- docker start mysql
- docker exec -it mysql bash
- mysql -u root -p
然后输入密码 123456
show databases;
出来你熟悉的数据库了。大功告成。
-
查看容器的运行状态
~ docker ps 或 docker ps -a
-
查看容器的运行日志
~ docker logs myMysql
有些系统中,如果没有设置第三步,可能运行mysql会失败,失败原因可以通过查看容器的运行日志来了解。 -
与容器进行交互
~ docker exec -t -i myMysql /bin/bash
执行之后会获得容器内的/bin/bash终端,
root@35e1fab30962:/#,其中35e1fab30962是容器ID
此时就可以在这里执行mysql命令了 -
停止正在运行的mysql容器
~docker stop myMysql
-
启动已创建的mysql容器
~docker start myMysql
-
mysql容器的数据导出
~docker exec myMysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql
-
更多docker命令帮助,请使用
~docker --help 或 docker cmd --help
-
更多docker中mysql的使用,请参见
mysql的docker镜像仓库