前提条件:确保服务器都安装了docker以及docker-compose服务
? 创建docker-compose.yaml
mkdir -p /data/mysql8 && cd /data/mysql8
touch docker-compose.yml
cat > docker-compose.yml << EOF
version: "3.2"
services:
mysql:
image: mysql:8.0
restart: always
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: "123456"
TZ: "Asia/Shanghai"
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
- mysql-conf:/etc/mysql
command:
--max_connections=1000
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--default-authentication-plugin=mysql_native_password
deploy:
resources:
limits: # 资源使用上限
cpus: "2"
memory: 4G
volumes:
mysql-data:
mysql-conf:
EOF
? 运行docker-compose
# 在docker-compose.yml文件目录中运行
docker-compose up -d
# 查看容器运行日志
docker-compose logs -f
? 创建自定义配置文件
先通过docker volume inspect mysql-conf
查看mysql容器的配置文件挂载目录,然后在该路径下创建my.cnf文件,做自定义配置文件修改。
# 进入到容器卷目录
# 报错就使用docker inspect mysql自行查看,因为每个人环境不一样的原因
# 这里是使用awk进行截取操作
cd $(docker inspect --format='{{json .Mounts}}' mysql |awk -F ":" '{print $12}'|awk -F '"' '{print $2}')
touch my.cnf
cat > my.cnf << EOF
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
EOF
? 重启容器
# 使用docker-compose命令进行重启
root@PowerEdge-R630:~# docker-compose -f /data/mysql/docker-compose.yml restart
[+] Restarting 1/1
✔ Container mysql Started
- 节点 docker-compose compose docker mysqldocker-compose compose docker mysql 节点docker-compose compose docker docker-compose compose docker mysql8 docker-compose docker-compose compose docker docker-composed docker-compose compose docker gitlab docker docker-compose compose ubuntu docker-compose compose docker redis docker-compose compose docker failed