1、查看可用的 MySQL 版本
docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11626 [OK]
mariadb MariaDB Server is a high performing open sou… 4423 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 862 [OK]
percona Percona Server is a fork of the MySQL relati… 561 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 359 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 91
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 89
centurylink/mysql Image containing mysql. Optimized to be link… 59 [OK]
databack/mysql-backup Back up mysql databases to... anywhere! 52
prom/mysqld-exporter 43 [OK]
deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK]
tutum/mysql Base docker image to run a MySQL database se… 35
linuxserver/mysql A Mysql container, brought to you by LinuxSe… 33
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 31 [OK]
mysql/mysql-router MySQL Router provides transparent routing be… 23
centos/mysql-56-centos7 MySQL 5.6 SQL database server 20
arey/mysql-client Run a MySQL client from a docker container 19 [OK]
fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron tas… 16 [OK]
openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6
devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offici… 3
idoall/mysql MySQL is a widely used, open-source relation… 3 [OK]
jelastic/mysql An image of the MySQL database server mainta… 2
ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
widdpim/mysql-client Dockerized MySQL Client (5.7) including Curl… 1 [OK]
centos/mysql-80-centos7 MySQL 8.0 SQL database server 1
2、拉取 MySQL 镜像
docker pull mysql:latest
#查看镜像
docker images
3、运行容器
安装完成后,我们可以使用以下命令来运行 mysql 容器:
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
- -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
- MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
4、安装成功
通过 docker ps 命令查看是否安装成功:
5、进入mysql命令行
mysql 为镜像名称 或者镜像id均可
docker exec -it mysql bash
6、登录mysql,允许远程登录
登录
mysql -u root -p
修改授权
update user set authentication_string = password('123456') where user = 'root';
#新增一个root用户,所有地址(%)的都可以访问,并且密码为123456 。这里可以根据你的情况酌情修改
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '123456' WITH GRANT OPTION;
#清除缓存,重新加载权限
flush privileges;
一般来讲如果是旧版的mysql,以上的操作,就已经让数据库可以外部访问了。但是很遗憾,在mysql5.7中,上面还不足够。
你需要修改 /etc/mysql/mysql.conf.d/mysqld.cnf 文件。将其中的
bind-address 注释掉。然后重启数据库,搞定
关注我的微信公众号