如果还没有安装好 docker 的话可以参考我之前的 docker 安装教程
1.先搜索一下 mysql 镜像列表
docker search mysql
出现以下 mysql 相关的镜像列表,列表中有 Star 数、Official(是否官方)等参数,默认按 Star 数排列。
NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 8621 [OK] mariadb MariaDB is a community-developed fork of MyS… 2997 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Create… 637 [OK] centos/mysql-57-centos7 MySQL 5.7 SQL database server 63 centurylink/mysql Image containing mysql. Optimized to be link… 61 [OK] mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 51 deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK] tutum/mysql Base docker image to run a MySQL database se… 34 bitnami/mysql Bitnami MySQL Docker Image 33 [OK] schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 28 [OK] prom/mysqld-exporter 23 [OK]
2.拉取 mysql 的镜像
执行拉取镜像语句
docker pull mysql:5.7
开始出现下载提示
5.7: Pulling from library/mysql 8f91359f1fff: Pull complete 6bbb1c853362: Pull complete e6e554c0af6f: Pull complete f391c1a77330: Pull complete 414a8a88eabc: Pull complete fee78658f4dd: Pull complete 9568f6bff01b: Pull complete 76041efb6f83: Pull complete ea54dbd83183: Pull complete 566857d8f022: Pull complete 01c09495c6e7: Pull complete Digest: sha256:f7985e36c668bb862a0e506f4ef9acdd1254cdf690469816f99633898895f7fa Status: Downloaded newer image for mysql:5.7 docker.io/library/mysql:5.7
下载结束后执行 docker 查看镜像
docker images
确认已经出现 mysql 5.7 的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.7 383867b75fd2 2 weeks ago 373MB
3.启动 Mysql 容器
执行以下语句
docker run -p 3306:3306 --name mysql \ -v /usr/local/mysql/conf:/etc/mysql/conf.d \ -v /usr/local/mysql/logs:/logs \ -v /usr/local/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=root123456 \ -d mysql:5.7
稍微解释以下这段启动语句
# run是启动命令 -p是端口映射 将本机的3306映射到容器里的3306端口 # -name为容器设置名称,如果没有设置会有默认的随机名称 docker run -p 3306:3306 --name mysql \ # -v是挂载容器卷 # 将mysql的各个主要文件夹映射到宿主机上 -v /usr/local/mysql/conf:/etc/mysql/conf.d \ -v /usr/local/mysql/logs:/logs \ -v /usr/local/mysql/data:/var/lib/mysql \ # -e是传入环境变量 传入mysql root用户的密码 -e MYSQL_ROOT_PASSWORD=root123456 \ # -d是后台运行容器 后面跟着镜像的名称 -d mysql:5.7
此时查看 docker 进程
docker ps
将会看到 mysql 容器已经在运行当中
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0dacc263341b mysql:5.7 "docker-entrypoint.s…" 6 seconds ago Up 4 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
4.验证 Mysql
此时容器已创建好,可以直接用 navicat 连接到容器内的 mysql。
也可以进入到容器内部进行验证。
中间那一串 id 是你们本机上正在运行的容器 id。
docker exec -it 0dacc263341b /bin/bash
登录 mysql
root@0dacc263341b:/# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.7.27 MySQL Community Server (GPL)
OK!安装成功咯~
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于