拉取mysql镜像
docker pull mysql:5.7
:
后5.7为版本号,说明为5.7版本,不加:5.7
默认为latest版本
创建文件夹
- 创建文件夹用来挂载数据卷
mkdir -p /root/docker/mysql/data
mkdir -p /root/docker/mysql/conf
-
在conf文件夹下创建文件
my.cnf
-
[mysqld] skip-name-resolve character_set_server=utf8 datadir=/var/lib/mysql server-id=1000
-
启动容器
docker run --name docker-mysql \
-e MYSQL_ROOT_PASSWORD=root \
-p 3306:3306 \
-v /root/docker/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-v /root/docker/mysql/data:/var/lib/mysql \
-d mysql:5.7
-
使用上述命令即可启动容器
-
MYSQL_ROOT_PASSWORD=root
,设置密码,密码为root -
-p 3306:3306
,指定端口的映射,使用3306端口即可连接数据库 -
-v
指定数据卷挂载 -
mysql:5.7
,是镜像名称
mysql使用的内存过多,导致系统杀死对应的进程问题
mysql启动后设置限制内存
-
在宿主机任意位置下:
vim docker.cnf
-
写入:
-
skip-host-cache skip-name-resolve performance_schema_max_table_instances=400 table_definition_cache=400 table_open_cache=256 performance_schema=off
-
-
将docker.cnf 复制到mysql容器内
sudo docker cp ./docker.cnf 容器名:/etc/mysql/conf.d
限制mysql内存占用
docker update -m 400M --memory-reservation 400M --memory-swap 500M 容器名
- 查看设置内容后docker容器内存使用情况:
docker stats