Docker 安装mysql镜像,含离线
Docker 安装mysql镜像(含离线)准备mysql的Docker镜像(需要在有网的服务器中下载)将准备好tar导入到docker镜像 Docker启动mysql镜像并初始化数据库Docker启动MySQL镜像Docker初始化数据库有网配置(非必要,按需修改)无网配置(非必要,按需修改)Docker 安装mysql镜像(含离线)
准备mysql的Docker镜像(需要在有网的服务器中下载)
使用有网的服务器下载好镜像
docker pull mysql:5.7
保存下载好的镜像成tar
docker imagesdocker save imageid > mysql5.7ll
将准备好tar导入到docker镜像
将镜像上传到所需服务器(放在固定位置)
导入镜像
docker load <mysql5.7
注意名称,这里的mysql5.7和上面打包docker save imageid > mysql5.7
的名称一致,本例未改名
查看导入的镜像,并重新命名镜像
docker imagesdocker tag imageid mysql:5.7
Docker启动mysql镜像并初始化数据库
Docker启动MySQL镜像
创建本地数据库目录、配置文件以及日志目录(方便进行容器数据卷挂载)
mkdir -p /home/app/mysql/data /home/app/mysql/logs /home/app/mysql/conf
启动镜像
docker run --name mysql -p 3306:3306 -v /home/app/mysql/data:/var/lib/mysql -v /home/app/mysql/conf:/etc/mysql/conf.d -v /home/app/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d eef0fab001e8
-p 3306:3306
:端口映射,将宿主机3306端口与容器3306端口做映射
格式:-p 宿主机端口:容器端口
–name mysql
: 指定容器名字为mysql,也可以不指定,不指定没有容器名字
数据容器卷挂载
-v /home/app/mysql/data:/var/lib/mysql
:对宿主机数据库目录与容器数据库目录进行映射挂载
-v /home/app/mysql/conf:/etc/mysql/conf.d
:对宿主机数据库配置文件与容器数据库配置文件进行映射挂载
-v /home/app/mysql/logs:/var/log/mysql
:对宿主机数据库日志与容器数据库日志进行映射挂载
-e MYSQL_ROOT_PASSWORD=123456
:配置mysql的root账号的密码为123456(可以根据需要自行修改密码)
-d
:后台执行
eef0fab001e8
:镜像id,容器第一次启动要根据镜像来启动,所以镜像id必不可少。可以通过命令docker iamges查看镜像id
Docker初始化数据库
有网配置(非必要,按需修改)
进入到bash
docker exec -it eef0fab001e8 bin/bash
eef0fab001e8
:镜像id,容器第一次启动要根据镜像来启动,所以镜像id必不可少。可以通过命令docker iamges查看镜像id
docker 安装vim(有网)
apt-get updateapt-get install vim
修改mysql的配置(非必要,按需修改)
vi /etc/f
修改的内容为:
character-set-server=utf8max_connections = 5000log_bin_trust_function_creators=1lower_case_table_names = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLEStransaction_isolation = READ-COMMITTEDgroup_concat_max_len = 102400
退出 bash (2 种操作) 1)Ctrl + d 退出容器(也可直接输入:exit); 2)Ctrl + p + q 退出并在后台运行容器;
重启 docker 容器
docker restart [容器名]
无网配置(非必要,按需修改)
进入到bash
docker exec -it eef0fab001e8 bin/bash
eef0fab001e8
:镜像id,容器第一次启动要根据镜像来启动,所以镜像id必不可少。可以通过命令docker iamges查看镜像id
docker 配置f(非必要,按需修改)【直接拷贝,需重启】
复制/root/mysql_db_back/下的f文件到容器中的etc目录下
docker cp /root/mysql_db_back/f mysql:/etc
重启 docker 容器
docker restart [容器名]
检查参数配置
SHOW VARIABLES WHERE variable_name IN ('log_bin_trust_function_creators','transaction_isolation','lower_case_table_names','sql_mode','character_set_server','default_character_set','innodb_large_prefix','max_connections','innodb_buffer_pool_size','group_concat_max_len');