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

 

posted @ 2020-09-09 14:33  sunjun5249  阅读(194)  评论(0)    收藏  举报