docker (六)-进阶篇-数据持久化最佳实践MySQL部署

容器的数据挂载通常指的是将宿主机(虚拟机或物理机)上的目录或文件挂载到容器内部

MySQL单节点安装

详情参考docker官网文档

1 创建对应的数据目录、日志目录、配置文件目录(参考二进制安装,需自己建立数据存储目录)

mkdir -p /data/mysql/{data,log,conf}

2 编写配置文件 

[root@docker-131 mysql]# cat /data/mysql/conf/my.cnf
[mysqld]
character_set_server=utf8
collation-server=utf8_general_ci
log-bin=binlog
server-id=1

3 启动容器 

查询官网,MySQL必须要设置超级用户密码的环境变量

docker (六)-进阶篇-数据持久化最佳实践MySQL部署_第1张图片

docker run --name mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -v /data/mysql/data:/var/lib/mysql \
    -v /data/mysql/log:/var/log/mysql \
    -v /data/mysql/conf:/etc/mysql/conf.d \
    -p 3308:3306 \
    --restart=always \
    -d mysql:$VERSION

说明:上面的-v用于将项目数据目录、日志目录、配置文件目录映射到宿主机,--restart=always表示重启 docker 引擎后,自动启动该容器 

可以通过docker inspect查看容器挂载信息

  1. HostConfig 是一个包含有关容器主机配置的部分。Binds 是其中的一个键,它提供了有关容器挂载点的信息。具体来说,Binds 键下的值是一个数组,其中包含了容器与主机之间的挂载关系
  2. Mounts 键,该键下包含了有关容器中的挂载点的信息
  3. Volumes 会列出容器内部的卷,并显示每个卷的路径。这些路径通常会以容器内部的路径为准,而不是主机路径。

4 查看状态

docker (六)-进阶篇-数据持久化最佳实践MySQL部署_第2张图片

5  连接数据库

查看mysql容器的ip

[root@docker-131 mysql]# docker inspect -f "{{ .NetworkSettings.IPAddress}}" mysql
10.233.0.2
[root@docker-131 mysql]# docker run -it --rm mysql mysql -h10.233.0.2 -P3306 -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.44-log MySQL Community Server (GPL)

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

MySQL一主一从部署 

----

你可能感兴趣的:(docker,容器,运维)