使用docker-compose部署mysql单节点

发布时间 2023-07-06 18:34:10作者: Ronnybox

前提条件:确保服务器都安装了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