Docker学习系列从零开始之基于SSH镜像制作mysql的镜像【六】

网友投稿 239 2022-10-21

Docker学习系列从零开始之基于SSH镜像制作mysql的镜像【六】

​1、启动centos6.5-ssh镜像​ 在宿主机器上执行如下命令:

docker run -d -P -v /var/lib/mysql:/var/lib/mysql --name=test centos6.5-ssh

接着在执行如下命令:

docker ps

​2、使用SSH工具登陆当前启动的镜像​

接着按步骤执行如下命令: 1、安装mysql

yum install wget -y

wget -ivh mysql-community-release-el7-5.noarch.rpm

yum install mysql-community-server

2、配置mysql

mysql_install_db --user=mysql --ldata=/var/lib/mysql

3、开启mysql

mysqld_safe

4、配置root用户密码、赋予root远程连接权限( ​不要把 ​

​mysql>这个拷贝进去执行​

mysql -u root

mysql> UPDATE mysql.user SET Password = PASSWORD('123456') WHERE User = 'root';

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql> flush privileges;

5、更改mysql配置,使服务忽略大小写、以utf8传输等

vi /etc/my.cnf

# For advice on how to change settings please see# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M## Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin## Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2Mlower_case_table_names=1datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqlmax_allowed_packet=20M# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0character-set-server=utf8init_connect='SET NAMES utf8'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[mysql]default-character-set=utf8# Disabling symbolic-links is recommended to prevent assorted security risks#symbolic-links=0# Recommended in standard MySQL setup#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

6、更改启动脚本

vi /run.sh

#!/bin/bashmkdir /var/run/mysqldchgrp mysql /var/run/mysqld/chmod g+w /var/run/mysqld//usr/sbin/sshdmysqld_safe

7、更改启动脚本权限

接着执行exit退出当前的ssh页面 8、提交当前容器的修改

docker commit ffb76a0db835 centos6.5-mysql-sshd-1.1

到此我们的mysql的镜像已经制作完成了,但是我们的mysql镜像的数据库只能在镜像中访问,因为我们还没有开启端口的映射。 ​3、使用centos6.5-mysql-sshd-1.1制作完整镜像​

首先创建一个存放完整版mysql镜像的文件夹

cd docker

mkdir mysqlInfo

cd mysqlInfo

touch Dockerfile

vi Dockerfile

接着修改Dockerfile文件如下:

FROM centos6.5-mysql-sshd-1.1 MAINTAINER linzf <282245889@qq.com> EXPOSE 3306 CMD ["/run.sh"]

最后创建当前的centos6.5-mysql-sshd-1.2版的数据库镜像:

docker build -t "centos6.5-mysql-sshd-1.2" .

docker images

可以看到我们的镜像已经创建成功了(上面已经将1.1版的镜像给删除了),接着我们启动我们的镜像。

docker run -d -P -v /var/lib/mysql:/var/lib/mysql --name=mysql2 centos6.5-mysql-sshd-1.2

docker images

可以看到我们的数据库已经启动,并将数据库的端口做了映射将镜像的3306端口映射到了宿主机器的32820的端口,此时我们的数据库已经可以直接访问了, ​若是我们重复执行该镜像且给将镜像一个新的别名,那么我们将会发现我们的数据库永远只会连接第一个镜像,后面的镜像的数据库我们是连接不上的。​

docker以自定义端口的方式启动该镜像

docker run -d -p 13306:3306 -v /var/lib/mysql:/var/lib/mysql --name=mysql2 centos6.5-mysql-sshd-1.2

docker ps

可以看到我们的镜像的3306端口已经映射到宿主机器的13306端口了 ​参考网文如下:​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker学习系列从零开始之制作SSH镜像【四】
下一篇:SpringBoot接入轻量级分布式日志框架(GrayLog)的操作方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~