docker mysql
2018-08-12 本文已影响0人
胸口砕大石
官方镜像仓库
拉取镜像
$ docker pull mysql
挂载外部数据和配置
opt下创建数据文件夹,配置文件夹,配置文件,目录结构如下:
-mysql
--data
--config
---my.cnf
配置文件内容如下:
[mysqld]
#即可以mysql -u用户名 -p 登录进去 坑!!!
skip-grant-tables
lower_case_table_names=1
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
执行下面命令创建容器
$ docker run -d -p 3306:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=root \
-v=/opt/mysql/config/my.cnf:/etc/my.cnf \
-v=/opt/mysql/data:/var/lib/mysql \
mysql:5.5 \
--character-set-server=utf8 \
--collation-server=utf8_general_ci
参数说明
$ docker run 启动交互式容器
-d 后台运行容器,并返回容器ID
-p 3306:3306 端口映射,格式为:主机(宿主)端口:容器端口
--restart always 始终重启容器
--name mysql 为容器指定一个名称;
-e MYSQL_ROOT_PASSWORD="root" 设置环境变量
-v=/opt/mysql/config/my.cnf:/etc/my.cnf 映射配置文件
-v=/opt/mysql/data:/var/lib/mysql 映射数据目录
mysql:5.5 版本TAG
设置环境变量和镜像的参数,
环境变量使用-e的方式设置在镜像名称的前面;
镜像的参数需要配置在镜像名称的后面
--character-set-server=utf8
--collation-server=utf8_general_ci
进入容器内部
$ docker exec -it mysql bash
-t 让docker分配一个伪终端,并绑定到容器的标准输入上;
-i 让容器的标准输入保持打开;
mysql为容器名字