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指定的两个环境变量也被写入。

 

原文地址:https://www.cnblogs.com/-wenli/p/13734487.html