基于 Docker 安装 MySQL

本文详细介绍了如何使用Docker安装和配置MySQL数据库。包括搜索、拉取MySQL镜像,启动MySQL容器,连接数据库,查看运行状态及管理容器等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker 安装 MySQL

查看MySQL镜像

[root@izbp13xko46hud9vfr5s94z ~]# docker search mysql 
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                                                  MySQL is a widely used, open-source relation…   6353                [OK]                
mariadb                                                MariaDB is a community-developed fork of MyS…   1999                [OK]                
mysql/mysql-server                                     Optimized MySQL Server Docker images. Create…   458                                     [OK]
percona                                                Percona Server is a fork of the MySQL relati…   343                 [OK]                
zabbix/zabbix-server-mysql                             Zabbix Server with MySQL database support       101                                     [OK]
hypriot/rpi-mysql                                      RPi-compatible Docker Image with Mysql          87                                      
centurylink/mysql                                      Image containing mysql. Optimized to be link…   60                                      [OK]
zabbix/zabbix-web-nginx-mysql                          Zabbix frontend based on Nginx web-server wi…   54                                      [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5   ubuntu-16-nginx-php-phpmyadmin-mysql-5          36                                      [OK]
tutum/mysql                                            Base docker image to run a MySQL database se…   32                                      
centos/mysql-57-centos7                                MySQL 5.7 SQL database server                   28                                      
mysql/mysql-cluster                                    Experimental MySQL Cluster Docker images. Cr…   27                                      
schickling/mysql-backup-s3                             Backup MySQL to S3 (supports periodic backup…   19                                      [OK]
bitnami/mysql                                          Bitnami MySQL Docker Image                      15                                      [OK]
linuxserver/mysql                                      A Mysql container, brought to you by LinuxSe…   14                                      
zabbix/zabbix-proxy-mysql                              Zabbix proxy with MySQL database support        13                                      [OK]
centos/mysql-56-centos7                                MySQL 5.6 SQL database server                   8                                       
openshift/mysql-55-centos7                             DEPRECATED: A Centos7 based MySQL v5.5 image…   6                                       
circleci/mysql                                         MySQL is a widely used, open-source relation…   5                                       
dsteinkopf/backup-all-mysql                            backup all DBs in a mysql server                3                                       [OK]
mysql/mysql-router                                     MySQL Router provides transparent routing be…   2                                       
openzipkin/zipkin-mysql                                Mirror of https://quay.io/repository/openzip…   1                                       
cloudposse/mysql                                       Improved `mysql` service with support for `m…   0                                       [OK]
cloudfoundry/cf-mysql-ci                               Image used in CI of cf-mysql-release            0                                       
ansibleplaybookbundle/mysql-apb                        An APB which deploys RHSCL MySQL                0                                       [OK]

拉取MySQL镜像

[root@izbp13xko46hud9vfr5s94z ~]# docker pull mysql 
Using default tag: latest
latest: Pulling from library/mysql
f2aa67a397c4: Pull complete 
1accf44cb7e0: Pull complete 
2d830ea9fa68: Pull complete 
740584693b89: Pull complete 
4d620357ec48: Pull complete 
ac3b7158d73d: Pull complete 
a48d784ee503: Pull complete 
f122eadb2640: Pull complete 
3df40c552a96: Pull complete 
da7d77a8ed28: Pull complete 
f03c5af3b206: Pull complete 
54dd1949fa0f: Pull complete 
Digest: sha256:d60c13a2bfdbbeb9cf1c84fd3cb0a1577b2bbaeec11e44bf345f4da90586e9e1
Status: Downloaded newer image for mysql:latest
[root@izbp13xko46hud9vfr5s94z ~]#

运行MySQL

启动一个MySQL实例

[root@izbp13xko46hud9vfr5s94z ~]# docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
b04ecb7714b0bec7d6169af9ffdef79b80157122a24c9f1e811ccc835a7ce59b
[root@izbp13xko46hud9vfr5s94z ~]#

连接MySQL数据库

命令:docker exec -it 356c999b5cd0 bash
356c999b5cd0 是当前MySQL实例的容器ID,也可以通过容器名称来连接
示例:

[root@izbp13xko46hud9vfr5s94z ~]# docker exec -it 356c999b5cd0 bash 
root@356c999b5cd0:/# show databases;
bash: show: command not found
root@356c999b5cd0:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql>

查看运行中的MySQL实例

[root@izbp13xko46hud9vfr5s94z ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
b04ecb7714b0        mysql               "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp            mysql
[root@izbp13xko46hud9vfr5s94z ~]#

查看MySQL运行实例的进程信息

  • 通过docker top mysql查看
[root@izbp13xko46hud9vfr5s94z ~]# docker top mysql 
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
polkitd             13154               13129               0                   14:03               ?                   00:00:00            mysqld
[root@izbp13xko46hud9vfr5s94z ~]# 
  • 通过ps -ef | grep mysql查看
[root@izbp13xko46hud9vfr5s94z ~]# ps -ef | grep mysql 
polkitd  13154 13129  0 14:03 ?        00:00:01 mysqld
root     13398 12942  0 14:06 pts/0    00:00:00 grep --color=auto mysql
[root@izbp13xko46hud9vfr5s94z ~]#

重启MySQL实例

  • 根据容器名称重启
[root@izbp13xko46hud9vfr5s94z ~]# docker restart mysql 
mysql
[root@izbp13xko46hud9vfr5s94z ~]#

mysql 需要启动MySQL实例时,通过--name来指定

  • 根据容器ID重启
[root@izbp13xko46hud9vfr5s94z ~]# docker restart b04ecb7714b0
b04ecb7714b0
[root@izbp13xko46hud9vfr5s94z ~]#

关闭当前MySQL容器实例

[root@izbp13xko46hud9vfr5s94z ~]# docker stop b04ecb7714b0
b04ecb7714b0
[root@izbp13xko46hud9vfr5s94z ~]#

根据容器ID杀死MySQL容器实例

[root@izbp13xko46hud9vfr5s94z ~]# docker kill -s KILL b04ecb7714b0
b04ecb7714b0
[root@izbp13xko46hud9vfr5s94z ~]#

移除MySQL容器实例并删除容器挂载的数据卷

[root@izbp13xko46hud9vfr5s94z ~]# docker rm -f -v b04ecb7714b0
b04ecb7714b0
[root@izbp13xko46hud9vfr5s94z ~]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
0d622f7cd0a4        redis               "docker-entrypoint.s…"   5 days ago          Up 5 days           6379/tcp            some-redis
[root@izbp13xko46hud9vfr5s94z ~]#

通过docker rm -f -v移除MySQL实例镜像后,通过docker ps -a是无法查看到MySQL实例镜像的。

参考链接:https://github.com/docker-library/docs/tree/master/mysql
http://www.runoob.com/docker/docker-install-mysql.html
https://www.cnblogs.com/baolong/p/5763412.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值