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 @ 2020-09-26 11:56  -零  阅读(215)  评论(0编辑  收藏  举报