方法一: 不指定自定义的数据库文件安装目录
1. 在Docker中查找Percona MySQL 的官方镜像
docker search percona
在 Ubuntu-18.04 的 Shell 中输入步骤 1. 的结果如下:↡ (操作时间 2019年1月11日09:33:13)
root@ubuntu-server:~# docker search percona
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
percona Percona Server is a fork of the MySQL relati… 404 [OK]
percona/percona-xtradb-cluster Percona XtraDB Cluster docker image | https:… 66
percona/pmm-server Percona Monitoring and Management - PMM Serv… 62
percona/percona-server Docker image for Percona Server (from Percon… 34
paulczar/percona-galera Percona/Galera Docker image, can use service… 29 [OK]
percona/percona-server-mongodb Percona Server for MongoDB docker images 22
percona/proxysql ProxySQL with Percona ProxySQL admin tool 7
perconalab/pmm-server PMM Server dev repo 5
perconalab/percona-xtradb-cluster 4
capttofu/percona_xtradb_cluster_5_6 3
perconalab/percona-server-mongodb-operator MOVED TO https://hub.docker.com/r/perconalab… 1
perconalab/mongodb_consistent_backup A Docker image containing github.com/Percona… 1
oprudkyi/percona-latest fixes percona:latest 1 [OK]
flowman/percona-xtradb-cluster Percona XtraDB Cluster for Rancher catalog i… 0 [OK]
objectiflibre/percona-galera Image officielle Percona modifiée pour faire… 0
pedep/percona-xtrabackup Official percona docker image v5.7.16 with x… 0 [OK]
onorua/af-percona 0
flowman/percona-xtradb-cluster-confd Percona XtraDB Cluster Configuration for Ran… 0 [OK]
perconalab/ps-build image with all needed depencies to build per… 0
flowman/percona-xtradb-cluster-clustercheck Percona XtraDB Cluster Python clustercheck f… 0 [OK]
perconalab/pxc-openshift 0
cfidentity/uaa-percona 0
cfidentity/uaa-percona-4-19-x 0
chrisshort/docker-centos6-percona-toolkit A Dockerfile that provides a CentOS 6 contai… 0 [OK]
amd64/percona Percona Server is a fork of the MySQL relati… 0
2. 选择 percona/percona-server ,然后pull percona/percona-server镜像
docker pull percona/percona-server #这个默认下载最新版本的 percona mysql 即(percona mysql 8.*.*)
docker pull percona/percona-server:5.7 #下载指定版本的 percona mysql 即(percona mysql 5.7)
3. 查看Docker中下载的镜像
docker images
在 Ubuntu-18.04 的 Shell 中输入步骤 3. 的结果如下:↡
root@ubuntu-server:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
percona/percona-server 5.7 0635053d955a 3 weeks ago 581MB
mysql 5.7 702fb0b7837f 2 months ago 372MB
4. 更改 Docker 中的镜像的Tag(标签)(非必要步骤)
docker tag percona/percona-server percona80
# docker tag 原标签 自定义标签
5. 再次查看 Docker 的镜像
docker images
6. 为 Percona MySQL 创建 Docker 容器
#创建容器
docker create -it percona80
#删除容器
docker rm percona80
7. 开始安装 Percona MySQL 容器
docker run --name percona80 -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 percona80
# MYSQL_ROOT_PASSWORD=密码
7.1 自定义 Percona MySQL 安装文件存放的目录(非必要步骤)
mkdir /home/ununtu/perconamysql/datadir # perconamysql 数据库数据文件目录
mkdir /home/ununtu/perconamysql/config/my.cnf # perconamysql 配置文件目录
docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name mysql -v /home/ununtu/perconamysql/config/my.cnf:/etc/mysql/my.cnf -v /home/ununtu/perconamysql/datadir/:/var/lib/mysql -p 3306:3306 mysql
8. 查看 Docker 中的容器
docker ps
在 Ubuntu-18.04 的 Shell 中输入步骤 8. 的结果如下:↡
root@ubuntu-server:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
af080e87f9fe mysql:5.7 "docker-entrypoint.s…" 8 weeks ago Up 2 weeks 33060/tcp, 0.0.0.0:3309->3306/tcp mysql5.7
9. Docker 启动 Percona MySQL容器
docker exec -it eb14e7f48700 /bin/bash
10. 登录 Percona MySQL
mysql -h127.0.0.1 -u root -p
mysql -u root -p -h 192.168.50.50 -P3309
在 Ubuntu-18.04 的 Shell 中输入步骤 10. 的结果如下:↡
grant all privileges on *.* to root@"%" identified by "Passwd"
11. 查看Ubuntu 安装的软件
dpkg --list|grep docker
12. 修改Docker 中 MySQL 的配置文件(my.cnf,mysql.cnf)
#1 有软连接文件 直接修改
vim etc/mysql/my.cnf #以文件的实际路径为准
vim etc/mysql/mysql.cnf #以文件的实际路径为准
#2 没有软连接文件 复制宿主文件到 Docker 容器中,替换原来的配置文件 适用于Docker 的容器无法启动又要修改容器的配置文件
# 2.1 把容器要修改的配置文件复制出来
#docker cp 容器名:/etc/mysql/mysql.cnf . (最后的 . 不能删除)
docker cp mysql:/etc/mysql/mysql.cnf .
docker cp mysql:/etc/mysql/my.cnf .
# 2.2 修改文件
docker cp mysql.cnf 容器名:/etc/mysql/mysql.cnf
docker cp mysql.cnf mysql:/etc/mysql/mysql.cnf
docker cp my.cnf mysql:/etc/mysql/my.cnf
#3 没有软连接文件 在Docker中启动容器,直接在 Docker 中直接修改配置文件
docker exec -it 容器ID /bin/bash
cd /etc/mysql
vim my.cnf
vim mysql.cnf