我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在DOCKER容器中运行MySQL服务的操作方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在DOCKER容器中运行MySQL服务的操作方法

下面讲讲关于在DOCKER容器中运行MySQL服务的操作方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完在DOCKER容器中运行MySQL服务的操作方法这篇文章你一定会有所受益。

        虚拟机使用了VBOX,VBOX配置了2个网络,一个是HOST ONLY,一个是NAT,这样保证了虚拟机可以同时进行本地和外网连接。

操作系统CentOS7.5,docker的安装比较简单,参考网上说明即可:


1. 先卸载系统中版本比较低的docker

# yum remove docker \

                  docker-client \

                  docker-client-latest \

                  docker-common \

                  docker-latest \

                  docker-latest-logrotate \

                  docker-logrotate \

                  docker-selinux \

                  docker-engine-selinux \

                  docker-engine


2.安装必要的系统工具

# yum install -y yum-utils device-mapper-persistent-data lvm2


3.添加阿里云的源 (有些文档中的地址使用了http,导致添加源失败,需要注意,目前源地址使用的是https协议)

# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


4.更新yum缓存

# yum makecache fast


5.安装docker-ce版本

# yum -y install docker-ce


6.配置docker服务自启动并启动docker服务

# systemctl enable docker

# systemctl start docker


7.至此docker配置完成,执行docker info,查看下docker的信息

# docker info

Containers: 3

 Running: 0

 Paused: 0

 Stopped: 3

Images: 3

Server Version: 18.06.1-ce

Storage Driver: overlay2


8.下载CENTOS最新的docker image

# docker search centos

# docker pull centos

[root@mysqldb ~]# docker images

REPOSITORY      TAG                IMAGE ID               CREATED             SIZE

centos                   latest              75835a67d134        4 weeks ago         200MB

       下面开始在物理主机上面配置必要的网络和目录信息。


1. 宿主机创建mysql目录

[root@mysqldb mysql]# cd /mysql/skydb/

[root@mysqldb skydb]# mkdir skydb1

[root@mysqldb skydb]# cd skydb1/

[root@mysqldb skydb1]# mkdir {data,log,binlog,tmp,script,etc}


2. 宿主机创建容器专用网络 (只需要创建一次)

创建网络是为了方便在docker容器中使用固定的IP地址。


[root@mysqldb ~]# docker network create --subnet=172.168.56.0/16 skynet

[root@mysqldb ~]# docker network ls


3. 启动centos docker容器

[root@mysqldb ~]# 

docker run -id --name skydb1 \

-v /mysql/mysql/mysql-5.7.24:/opt/mysql5.7 \

-v /mysql/skydb/skydb1:/mysqldata \

-v /etc/hosts:/etc/hosts \

--net skynet --ip 172.168.56.10 --hostname skydb1 centos 


--name skydb1 指定docker容器的名称

-v /etc/hosts:/etc/hosts 指定本地文件与docker容器内部的文件映射

--net skynet 指定docker的虚拟网络

--ip 172.168.56.10 固定docker容器的ip地址

--hostname skydb1 指定docker容器的主机名


MySQL使用的二进制安装包,解压到宿主机上面,通过文件映射的方式映射给docker容器。


下面是5.7和8.0的安装介质下载地址:

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz


wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz


4. 连接容器 (通过容器名称和ID进行连接)

[root@mysqldb ~]# docker exec -it skydb1 bash -c ". /root/.bash_profile && /bin/bash"


为了使登录的信息比较醒目,在 /root/.bash_profile 指定 banner `hostname`,方便识别docker容器主机。


5. 创建文件链接

[root@skydb1 ~]# cd /usr/local/

[root@skydb1 local]# ln -s /opt/mysql5.7/ ./mysql

[root@skydb1 local]# ln -s /opt/mysql5.7/bin/mysql /usr/local/bin/mysql

[root@skydb1 script]# ln -s /mysqldata/script/my.cnf /etc/my.cnf


6. 通过ldd,检查mysqld程序是否包含了所有动态库

[root@skydb1 ~]# ldd /usr/local/mysql/bin/mysqld


7. docker容器,安装必要软件包

[root@skydb1 ~]# yum install libaio

[root@skydb1 ~]# yum install numactl

[root@skydb1 ~]# yum install iproute

[root@skydb1 ~]# yum install net-tools


8. 创建安装用户并修改目录权限

[root@skydb1 ~]# groupadd mysql

[root@skydb1 ~]# useradd -g mysql -d /home/mysql -s /sbin/nologin -MN mysql

[root@skydb1 local]# cd /mysqldata/

[root@skydb1 mysqldata]# chown -R mysql:mysql ./


9. docker容器中初始化mysql

[root@skydb1 ~]# /usr/local/mysql/bin/mysqld --initialize

[root@skydb1 ~]# /usr/local/mysql/bin/mysqld  &


10. 查看默认的root口令

[root@skydb1 ~]# cd /mysqldata/log

[root@skydb1 log]# cat skydb1.err | grep pass

2018-11-06T05:27:43.361600-00:00 1 [Note] A temporary password is generated for root@localhost: /dJt?sq62OlF


11. 修改root用户口令

[root@skydb1 ~]# /usr/local/mysql/bin/mysql -S /mysqldata/tmp/skydb1.sock -uroot -p

mysql> set global super_read_only=0; 

mysql> set global read_only=0;

mysql> alter user user() identified by 'oracle';

mysql> flush privileges;


12. 配置本地自动登录

[root@skydb1 script]# cat my.cnf 

[client]

port = 3306

socket = /mysqldata/tmp/skydb1.sock

user = root

password = oracle

[root@skydb1 script]# mysql


13. 授权root用户远程连接

root@localhost [mysql]>GRANT ALL PRIVILEGES ON *.* TO root@"172.168.56.%" IDENTIFIED BY "oracle";

root@localhost [mysql]>GRANT ALL PRIVILEGES ON *.* TO root@"172.168.0.1" IDENTIFIED BY "oracle";

root@localhost [(mysql)]>flush privileges;


[root@mysqldb ~]# mysql -uroot -h 172.168.56.10 -p

[root@mysqldb ~]# mycli -u root -h 172.168.56.10


14. docker容器启停及登录

[root@mysqldb ~]# docker ps

[root@mysqldb ~]# docker stop skydb1

[root@mysqldb ~]# docker start skydb1

[root@mysqldb ~]# docker exec -it skydb1 bash -c ". /root/.bash_profile && /bin/bash"

对于以上在DOCKER容器中运行MySQL服务的操作方法相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在DOCKER容器中运行MySQL服务的操作方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker环境下将已运行的容器打包成新的镜像并运行在另一个服务器上的Docker容器中

1、 查看当前运行的容器 1.1、使用root账户登录进入Linux系统中,键入docker ps命令。 2、打包容器为镜像包 2.1、正在运行的容器一行中CONTAINER ID一列下面的字符串就是容器id,复制想要打包的容器ID并执行
2023-08-19

Nginx作为Docker容器的Web服务器配置详解(在Docker中如何配置Nginx作为Web服务器?)

在Docker中配置Nginx作为Web服务器涉及以下步骤:创建包含Nginx和依赖项的Docker镜像。构建镜像并运行Nginx容器,将容器端口映射到主机端口。优化Nginx配置,包括虚拟主机、根目录、错误页面、SSL/TLS、缓存等。使用日志记录和监控工具管理和监控容器。Nginx配置的优化可以提高性能、安全性、可用性和可管理性。通过Nginx的强大功能和Docker的轻量级,可以轻松部署和托管可扩展、健壮且安全的Web应用程序。
Nginx作为Docker容器的Web服务器配置详解(在Docker中如何配置Nginx作为Web服务器?)
2024-04-02

在1个Matlabm文件中定义多个函数直接运行的操作方法

这篇文章主要介绍了如何在1个Matlabm文件中定义多个函数直接运行,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-12-16

Linux在两个服务器直接传文件的操作方法

目录1.当从一个远程服务器传输文件到另一个服务器上(你想传给别人文件)2.在本地服务器,从另一个服务器中获取文件(你想从别人获取文件)scp是secure copy的简写, 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令
2022-08-08

Android中获得正在运行的程序和系统服务的方法

ActivityManager.RunningAppProcessInfo类与获取正在运行的应用程序 每一个应用程序都会运行在它独立的进程里,但是为了节省资源或者这些应用程序是为了完成某一共同工作,它们 也可能会运行在一个进程里。 知识点介
2022-06-06

Win8.1系统打开IE浏览器提示服务器正在运行中的解决方法图文教程

Win8.1系统自带有IE浏览器,在使用过程中难免会遇到一些故障问题,这不有些用户说Win8.1系统打开IE浏览器提示“服务器正在运行中”,导致浏览器无法正常运行,该如何解决呢?大家不要担心,接下来小编和大家分享Wi
2022-06-04

win7系统中提示explorer.exe服务器运行失败的解决方法图解

小编昨晚安装好win7 64位后打开资源管理器发现跳出窗口:explorRqITciszTIer.exe服务器运行失败 问题解析: 出现这个问题是由于更改了文件夹选项引起的,可能是因为更改了文件夹打开方式或者是隐藏了硬盘或文件。解决方法:
2023-06-04

远程连接银河麒麟高级服务器操作系统V10SP1的几种方法(命令行远程+图形化远程)

文章目录 一、命令行远程SSH远程 二、图形化远程VNC远程ToDesk远程向日葵远程 一、命令行远程 SSH远程 服务端 OS环境:银河麒麟高级服务器操作系统V10SP1(x86_64) 确认sshd服务处于运行状态
2023-08-24

编程热搜

目录