1、安装percona或者mysql镜像
docker pull mysql / docker pull percona
2、创建mysql或者percona镜像
percona
docker create --name percona -v /data/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23
myslq
docker run -di --name=mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
3、启动percona或者mysql
percona
ducker start percona
mysql
ducker start mysql
如果mysql或者percona闪退(内存不足的情况)
docker logs mysql查看mysql日志
free(free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。)
发现swap 虚拟内存都是0
应该是swap 未启用
启用swap:
dd if=/dev/zero of=/swapfile bs=1M count=1024
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
bs=1M 指块大小为1048576Byte个字节
count=1 指仅拷贝1048576个块;
mkswap /swapfile
使用mkswap命令来设置交换文件: mkswap /swapfile
swapon /swapfile
启用交换分区: swapon /swapfile。
再次 free
发现swap 已经有数值 已启用
在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。
查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区。
可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 10% 时才使用 SWAP 分区:
本人使用的100
echo 10 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:
vm.swappiness=10
再次 docker start mysql或者docker start percona
启动成功