Docker 安装 MySQL
Docker 安装 MySQL
MySQL 是世界上最受欢迎的开源数据库。凭借其可靠性、易用性和性能,MySQL 已成为 Web 应用程序的数据库优先选择。
1、查看可用的 MySQL 版本
访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags 。
还可以通过 docker search mysql 命令来查看可用版本:
1 root@xxxxxxxxxxxx:~# docker search mysql 2 NAME DESCRIPTION STARS OFFICIAL AUTOMATED 3 mysql MySQL is a widely used, open-source relation… 9945 [OK] 4 mariadb MariaDB is a community-developed fork of MyS… 3638 [OK] 5 mysql/mysql-server Optimized MySQL Server Docker images. Create… 725 [OK] 6 percona Percona Server is a fork of the MySQL relati… 508 [OK] 7 centos/mysql-57-centos7 MySQL 5.7 SQL database server 83 8 mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 75 9 centurylink/mysql Image containing mysql. Optimized to be link… 61 [OK] 10 bitnami/mysql Bitnami MySQL Docker Image 44 [OK] 11 deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK] 12 tutum/mysql Base docker image to run a MySQL database se… 35 13 prom/mysqld-exporter 31 [OK] 14 schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 30 [OK] 15 databack/mysql-backup Back up mysql databases to... anywhere! 30 16 linuxserver/mysql A Mysql container, brought to you by LinuxSe… 25 17 centos/mysql-56-centos7 MySQL 5.6 SQL database server 20 18 circleci/mysql MySQL is a widely used, open-source relation… 19 19 mysql/mysql-router MySQL Router provides transparent routing be… 16 20 arey/mysql-client Run a MySQL client from a docker container 14 [OK] 21 fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron tas… 8 [OK] 22 openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6 23 devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offici… 3 24 ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK] 25 jelastic/mysql An image of the MySQL database server mainta… 1 26 widdpim/mysql-client Dockerized MySQL Client (5.7) including Curl… 1 [OK] 27 monasca/mysql-init A minimal decoupled init container for mysql 0
2、拉取 MySQL 镜像
这里我们拉取官方的最新版本的镜像:
1 $ docker pull mysql:latest
我是安装的mysql-5.7版本,所以使用命令 docker pull mysql:5.7
1 root@xxxxxxxxxxxxxxx:~# docker pull mysql:5.7 2 5.7: Pulling from library/mysql 3 bf5952930446: Pull complete 4 8254623a9871: Pull complete 5 938e3e06dac4: Pull complete 6 ea28ebf28884: Pull complete 7 f3cef38785c2: Pull complete 8 894f9792565a: Pull complete 9 1d8a57523420: Pull complete 10 5f09bf1d31c1: Pull complete 11 1591b28581e8: Pull complete 12 96ef942f7603: Pull complete 13 2e009731422e: Pull complete 14 Digest: sha256:1a83136153b238b659b0887ceb4e08275473af1eab2e67de4c22b37c5f4130cd 15 Status: Downloaded newer image for mysql:5.7 16 docker.io/library/mysql:5.7
3、查看本地镜像
使用以下命令来查看是否已安装了 mysql:
1 root@xxxxxxxxxx:~# docker images 2 REPOSITORY TAG IMAGE ID CREATED SIZE 3 mysql 5.7 d589ea3123e0 4 days ago 448MB
4、运行容器
安装完成后,我们可以使用以下命令来运行 mysql 容器:
docker run -p 3306:3306 --restart=always --privileged=true --name mysql -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD="123456" -d mysql:5.7 命令说明: -p 3306:3306:将容器的3306端口映射到主机的3306端口 -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码 -d: 后台运行容器,并返回容器ID 下面这两行配置是挂载数据 -v /opt/mysql/data:/var/lib/mysql 挂载mysql配置文件 -v /opt/mysql/my.cnf:/etc/mysql/my.cnf my.cnf配置文件添加以下内容: [mysqld] user=root character-set-server=utf8 default_authentication_plugin=mysql_native_password sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION lower_case_table_names=1 #忽略表名大小写 [client] default-character-set=utf8 [mysql] default-character-set=utf8
我没有修改配置文件以及挂载数据,所有启动命令是:
1 docker run -itd -p 3306:3306 -v /etc/localtime:/etc/localtime --name mysql -e MYSQL_ROOT_PASSWORD="123456" -d mysql:5.7 2 3 4 -itd 后台运行容器 5 6 7 -v /etc/localtime:/etc/localtime 容器时间就是服务器系统时间
5、安装成功
通过 docker ps 命令查看是否安装成功:
1 root@xxxxxxxxxxxx:~# docker ps 2 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3 a0bfb8ab7ae7 mysql:5.7 "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql

浙公网安备 33010602011771号