Docker实践:部署Mysql

 

 

目录准备

目录结构:

─/home/mysql
├── conf.d
  └── my.cnf
├── data
├── start.sh

my.cnf:mysql配置文件

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
performance_schema = OFF
[mysql]
no-auto-rehash
default-character-set=utf8

start.sh:创建容器的脚本

复制代码
#!/bin/bash 

echo "create a mysql container.."
docker run -d --name mysql \
           -v $(pwd)/conf.d:/etc/mysql/conf.d \
           -v $(pwd)/data:/var/lib/mysql \
           -e MYSQL_ROOT_PASSWORD="123456" \
           -e MYSQL_DATABASE="test_bd" \
           -p 3307:3306 \
       mysql:5.7.19 \
           --character-set-server=utf8 --collation-server=utf8_general_ci
复制代码

简单说明:docker run 为运行容器的命令,若本地仓库不存在mysql:5.7.19的镜像则自动从DockerHub pull下来。

参数:

-d:后台运行

-v, 挂载配置文件与数据卷

-e, 指定mysql的root用户密码,并指定创建的数据库名,且设置为环境变量

-p, 映射容器端口给宿主机端口

 

快速开始

在mysql目录下给脚本添加可执行权限,并运行脚本:

chmod +x start.sh
./start.sh

查看运行的容器:

docker ps

现在看看mysql容器是否正确运行

docker exec -it mysql bash

首先docker run创建时,写入的环境变量MYSQL_DATABASE会由mysql镜像处理,创建database。

我们在容器中使用env查看环境变量时,docker run指定的两个环境变量也被写入。

 

posted @   -零  阅读(220)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2019-09-26 linux下Django Nginx+uwsgi 安装配置
2019-09-26 python使用openpyxl操作execl
点击右上角即可分享
微信分享提示