docker构件 mysql容器

本文详细介绍了如何使用Docker部署MySQL数据库,包括拉取基础镜像、创建容器并映射本地目录以保存日志和数据,确保数据持久化。通过自定义my.cnf配置文件,设置环境变量如root用户密码,实现MySQL容器的高效运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 先拉一个mysql基础镜像

2 创建mysql容器要映射到本机的目录,用来保存日志,数据等信息,不至于容器一关数据就丢失。

创建 如下目录结构
– /usr/local/mysql_data
– conf
– my.cnf #作为mysql配置文件 ,挂载到容器的/etc/mysql/my.cnf
– data
– mysql 映射到容器的/var/lib/mysql,做为数据目录
– logs 映射到/logs目录,做为日志输出

我的my.cnf文件如下,自定义就行

pid-file        = /var/run/mysqld/mysqld.pid  
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
# Custom config should go here
!includedir /etc/mysql/conf.d/

3构件容器

构件命令如下
docker run -it -d --name mysql_2
-e MYSQL_ROOT_PASSWORD=my-secret-pw
-v /usr/local/mysql_data/conf/my.cnf:/etc/mysql/my.cnf
-v /usr/local/mysql_data/logs:/logs
-v /usr/local/mysql_data/data/mysql:/var/lib/mysql
mysql

-e: 设置mysql的root用户密码
-v : 挂载配置文件,数据目录,log目录到容器里

mysql里的一些环境变量
MYSQL_ROOT_PASSWORD # root用户密码
MYSQL_DATABASE
MYSQL_USER
MYSQL_PASSWORD
MYSQL_ALLOW_EMPTY_PASSWORD
MYSQL_RANDOM_ROOT_PASSWORD
MYSQL_ONETIME_PASSWORD

### 安装与配置 #### 准备工作 为了确保顺利安装,建议更新现有软件包并重启服务器。 ```bash yum update -y && reboot ``` #### 设置Docker Yum源 通过官方仓库获取最新版Docker及其组件。这一步骤对于后续稳定运行至关重要[^2]: ```bash yum-config-manager --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo ``` #### 安装Docker CE及相关工具 执行命令完成核心组件的安装,包括`docker-ce`, `docker-ce-cli` 和 `containerd.io`. 这些是运行容器化应用的基础构件[^1]: ```bash yum install -y docker-ce docker-ce-cli containerd.io ``` #### 启动并启用Docker服务 使Docker随系统启动,并立即激活该服务: ```bash systemctl start docker systemctl enable docker ``` #### 安装Docker Compose插件 为简化多容器管理流程,推荐一并安装Docker Compose插件[^3]: ```bash yum install -y docker-compose-plugin ``` #### 使用Docker Compose部署Nginx, MySQL和Redis 创建一个名为`docker-compose.yml` 的文件,在其中定义所需的服务结构。以下是基于给定信息的一个简单示例: ```yaml version: '3' services: nginx: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - webapp mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example volumes: - db_data:/var/lib/mysql redis: image: redis:alpine command: ["redis-server", "--appendonly yes"] volumes: db_data: ``` 此配置文件描述了一个由三个主要部分组成的网络——Web应用程序前端(`nginx`)、关系型数据库管理系统 (`mysql`) 及键值存储解决方案 (`redis`). 保存上述YAML文档后,可以通过如下指令一键搭建整个环境: ```bash docker compose up -d ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值