zl程序教程

您现在的位置是:首页 >  工具

当前栏目

通过docker安装mysql5.7稳定版

Docker安装 通过 mysql5.7 稳定版
2023-09-11 14:17:06 时间

一、检查docker版本

[root@zxf ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.5
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        55c4c88
 Built:             Tue Mar  2 20:33:55 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.5
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       363e9a8
  Built:            Tue Mar  2 20:32:17 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.4
  GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc:
  Version:          1.0.0-rc93
  GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

说明docker安装成功。

二、接下来我们用docker安装mysql

1.我们先可以使用

docker search mysql

来查看可用版本,但是我们选择稳定的5.7版本作为我们的安装版本

[root@zxf ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10671     [OK]
mariadb                           MariaDB Server is a high performing open sou…   4008      [OK]
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   779                  [OK]
percona                           Percona Server is a fork of the MySQL relati…   528       [OK]
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   87
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   80
centurylink/mysql                 Image containing mysql. Optimized to be link…   59                   [OK]
bitnami/mysql                     Bitnami MySQL Docker Image                      50                   [OK]
databack/mysql-backup             Back up mysql databases to... anywhere!         42
deitch/mysql-backup               REPLACED! Please use http://hub.docker.com/r…   41                   [OK]
prom/mysqld-exporter                                                              37                   [OK]
tutum/mysql                       Base docker image to run a MySQL database se…   35
schickling/mysql-backup-s3        Backup MySQL to S3 (supports periodic backup…   29                   [OK]
linuxserver/mysql                 A Mysql container, brought to you by LinuxSe…   27
centos/mysql-56-centos7           MySQL 5.6 SQL database server                   20
circleci/mysql                    MySQL is a widely used, open-source relation…   20
mysql/mysql-router                MySQL Router provides transparent routing be…   18
arey/mysql-client                 Run a MySQL client from a docker container      17                   [OK]
fradelg/mysql-cron-backup         MySQL/MariaDB database backup using cron tas…   12                   [OK]
yloeffler/mysql-backup            This image runs mysqldump to backup data usi…   7                    [OK]
openshift/mysql-55-centos7        DEPRECATED: A Centos7 based MySQL v5.5 image…   6
devilbox/mysql                    Retagged MySQL, MariaDB and PerconaDB offici…   3
ansibleplaybookbundle/mysql-apb   An APB which deploys RHSCL MySQL                2                    [OK]
jelastic/mysql                    An image of the MySQL database server mainta…   1
widdpim/mysql-client              Dockerized MySQL Client (5.7) including Curl…   1                    [OK]
[root@zxf ~]#

2.拉取mysql镜像

docker pull mysql:5.7

[root@zxf ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
ac2522cc7269: Pull complete
3ff4d5966d00: Pull complete
c8a8e9739c9e: Pull complete
8fd773bacd12: Pull complete
adbceeecb7f3: Pull complete
6b53011e5d04: Pull complete
32ae8cea62cb: Pull complete
4a5c6fd32f05: Pull complete
f34240da42b5: Pull complete
a8e62ee1f8e1: Pull complete
458b1117e790: Pull complete
Digest: sha256:6b33c0c4224e341938a7e97f1d19737ff8d436dc574086dd129a8c7556cb8eda
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[root@zxf ~]#

如果下载速度缓慢,建议更换国内源

首先修改或者新增/etc/docker/daemon.json文件,内容改为

{

"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"]

}

保存退出,如果下载还是缓慢,建议多换几个源试试这篇文章提供了很多国内原。

保存后重启docker服务。

service docker restart

再次进行pull mysql。

安装好后,我们通过docker images来查看是否正确安装好mysql.

[root@zxf ~]# docker images
REPOSITORY                                             TAG            IMAGE ID       CREATED        SIZE
mysql                                                  5.7            3473143edd4d   2 days ago     449MB
rabbitmq                                               3-management   ce6e9188a15c   11 days ago    187MB
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle      19c            7b5eb4597688   7 months ago   6.61GB
elasticsearch                                          5.6.10         73e6fdf8bd4f   2 years ago    486MB
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   latest         3fa112fd3642   5 years ago    6.85GB
[root@zxf ~]#

 

3.运行mysql容器

安装完成后,我们使用

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

来运行mysql容器

  • --name mysql-test是我们起的容器名字
  • -p 3306:3306是映射服务的3306端口到宿主机的3306端口,我们访问的时候访问3306端口。
  • MYSQL_ROOT_PASSWORD=123456 我们设置的root用户密码
  • mysql:5.7 设置启动的mysql版本。

成功后,我们使用docker ps -a命令查看启动是否成功。

[root@zxf ~]# docker ps -a
CONTAINER ID   IMAGE                                                  COMMAND                  CREATED          STATUS                   PORTS                                            NAMES
995b840afdd0   mysql:5.7                                              "docker-entrypoint.s…"   57 seconds ago   Up 56 seconds            0.0.0.0:3306->3306/tcp, 33060/tcp                mysql-test
5201689e1388   registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   "/bin/sh -c '/home/o…"   9 days ago       Up 9 days                0.0.0.0:1521->1521/tcp                           oracle11g
a53f35ddd67a   rabbitmq:3-management                                  "docker-entrypoint.s…"   10 days ago      Exited (1) 10 days ago                                                    rabbitmq
e2e21ab78d90   73e6fdf8bd4f                                           "/docker-entrypoint.…"   10 days ago      Up 5 days                0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch
[root@zxf ~]#

4.进入

我们使用

docker exec -it mysql-test bash

进入刚才我们创建的容器,然后通过

mysql -uroot -p123456

命令进入mysql环境

[root@zxf ~]# docker exec -it mysql-test bash
root@995b840afdd0:/# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.33 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

注意开头的变化判断命令是否生效。

最后,我们使用

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '';

命令来允许root用户从任意位置登录。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>

另:

修改mysq弱密码

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

我们通过sudo docker ps -a来查看启动的容器后,可以通过sudo docker stop XXX来停止和sudo docker rm XXX删除容器。XXX为容器的ID值

值得注意的是,我们这里的容器是虚拟机,我们关机后也是保留状态,不用开机后再进行一系列繁琐的命令,而是可以直接使用,如果删除再重建,你的数据表都会消失。