#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!

Mysql 安装

  1. 首先要获取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
  1. 启动 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 中的虚拟化。

  1. 使用 Navicat Premium 连接 mysql

主机名:localhost
端口:3306
用户名和密码都是: root

  1. 测试使用mysql
    启动 mysql:(这三句 以后常用)
  1. docker start mysql
  2. docker exec -it mysql bash
  3. mysql -u root -p
    然后输入密码 123456
    show databases;
    出来你熟悉的数据库了。大功告成。
  1. 查看容器的运行状态
    ~ docker ps 或 docker ps -a
  2. 查看容器的运行日志
    ~ docker logs myMysql 有些系统中,如果没有设置第三步,可能运行mysql会失败,失败原因可以通过查看容器的运行日志来了解。
  3. 与容器进行交互
    ~ docker exec -t -i myMysql /bin/bash 执行之后会获得容器内的/bin/bash终端,
    root@35e1fab30962:/#,其中35e1fab30962是容器ID
    此时就可以在这里执行mysql命令了
  4. 停止正在运行的mysql容器
    ~docker stop myMysql
  5. 启动已创建的mysql容器
    ~docker start myMysql
  6. mysql容器的数据导出
    ~docker exec myMysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql
  7. 更多docker命令帮助,请使用
    ~docker --help 或 docker cmd --help
  8. 更多docker中mysql的使用,请参见
    mysql的docker镜像仓库