<强>前言:强>
上篇文章介绍了码头工人工具的安装及常用命令使用。本篇文章我们会介绍如何在码头工人中运行MySQL实例,可能有的小伙伴会问:为什么要在码头工人里运行MySQL呢?因为在码头工人里部署MySQL实例操作简单,不需要考虑操作系统等依赖差异,而且可以多实例部署,比如说我们原来服务器有安装MySQL5.7,我们想再运行MySQL8.0实例的话只需要用码头工人启动MySQL8.0镜像即可。下面我们就来介绍下如何用码头工人启动MySQL实例。
▍1。拉取MySQL官方镜像
在上篇文章中我们介绍过码头工人中三个基本的概念:镜像,容器,仓库。要用在码头工人中部署MySQL,第一步要做的是从官方仓库中拉取MySQL镜像,这里我们从码头工人中心中拉取MySQL镜像。进入码头工人中心,搜索MySQL,可以看到如下画面,其中有不同版本的镜像及使用介绍。
比如我们想拉取MySQL5.7版本及8.0版本的镜像,可以做如下操作:
<代码类=" sql语言"> #拉取5.7及8.0版本镜像稍等片刻即可拉取成功 码头工人把mysql: 5.7.23 码头工人把mysql: 8.0.18 #查看镜像 码头工人的图片 标签影像ID创建存储库的大小 mysql 8.0.18 c8ee894bd2bd 2周前456 mb mysql 5.7.23 1 b30b36ae96a 12个月前372 mb 代码>
其实MySQL官方镜像也存在一些缺陷,比如说时区不是北京时间,系统字符集问题等。下面以MySQL5.7.23版本镜像为基础,展示下如何修改构建镜像。
<代码类=" sql语言"> #创建Dockerfile主要作用是更改系统字符集及时区内容如下: 猫Dockerfile 从mysql: 5.7.23 维护者王 回声”别名ls=ls——颜色=汽车”在祝辞/root/.bashrc \ ( ,,ln科幻/usr/share/zoneinfo/Asia/Shanghai/etc/localtime ENV LANG=C.UTF-8 #构建镜像 码头工人建造- t my-mysql: 5.7.23。 发送构建上下文码头工人守护进程2.048 kb 步骤4:从mysql: 5.7.23 ——比;1 b30b36ae96a 2/4步:王维护者 ——比;运行在a7cc94f95cc7 删除中间容器a7cc94f95cc7 ——比;d9590ed98de5 3/4步:运行回声“别名ls=ls——颜色=汽车”在祝辞/root/.bashrc, (,ln科幻/usr/share/zoneinfo/Asia/Shanghai/etc/localtime ——比;运行在e698bfdb3817 删除中间容器e698bfdb3817 ——比;31日c9ed9103c5 步骤4:ENV LANG=C.UTF-8 ——比;运行在eefa296fef94 删除中间容器eefa296fef94 ——比;10 aa697936e9 成功地建立了10 aa697936e9 成功标记my-mysql: 5.7.23 #再次查看镜像即可找到我们新构建的镜像 码头工人的图片 标签影像ID创建存储库的大小 my-mysql 5.7.23 10 aa697936e9大约一分钟前372 mb mysql 8.0.18 c8ee894bd2bd 2周前456 mb mysql 5.7.23 1 b30b36ae96a 12个月前372 mb 代码>
▍2。启动MySQL实例
这里为大家介绍如何利用上面构建的镜像来运行MySQL实例,MySQL容器化其实也需要映射端口,数据持久化,加载配置文件等操作,下面给大家演示下具体启动操作。
2.1创建数据持久化路径及配置文件
<代码类=" sql语言"> #创建配置文件目录及数据目录 mkdir - p/数据/mysql57/{cnf,数据} #添加配置文。件my . cnf中所做 cd/数据/mysql57/cnf/vim my.cnf #配置文件内容如下,可自定义 (mysqld) pid文件=/var/run/mysqld/mysqld.pid 套接字=/var/run/mysqld/mysqld.sock datadir=/var/lib/mysql 服务器id=33061 max_connections=1000 sql_mode=NO_AUTO_CREATE_USER NO_ENGINE_SUBSTITUTION lower_case_table_names=1 innodb_file_per_table=1 log_timestamps=系统 character-set-server=utf8 max_allowed_packet=32 m sort_buffer_size=4米 read_buffer_size=4米 join_buffer_size=4米 binlog_cache_size=4米 tmp_table_size=96 max_heap_table_size=96 通过innodb_buffer_pool_size=512 #日志 slow_query_log=1 slow_query_log_file=/var/lib/mysql/slow.log long_query_time=3 log-bin=/var/lib/mysql/binlog binlog_format=行 expire_logs_days=15 log_bin_trust_function_creators=1 代码>
2.2码头工人运行运行MySQL实例
<代码类=" sql语言"> #一条命令启动一个MySQL实例 码头工人运行itd - p 33061:3306——名字mysql57主机名=mysql57 - v/数据/mysql57/cnf:/etc/mysql - v/数据/mysql57/:/var/lib/mysql——特权=true - e MYSQL_ROOT_PASSWORD=Asdf@123456 my-mysql: 5.7.23 #解释下各个参数的含义 - d:后台运行容器,并返回容器ID 我:以交互模式运行容器,通常与- t同时使用 - t:为容器重新分配一个伪输入终端,通常与我同时使用 p:指定端口映射,格式为:主机(宿主)端口:容器端口 ——name=" mysql57”:为容器指定一个名称 ——主机名=mysql57:指定容器的主机名 - v:绑定一个卷 ——特权=true:以特权方式启动容器MySQL容器化详细教程