mysql 容器化安装(docker)离线和在线

前言:在部署hive或airflow 升级过程中,总需要一个对应的数据库存储元数据,一个轻量级的mysql容器刚刚好。轻量、可快速移植、具有隔离性。

文章目录

    • 1、查看机器版本
    • 2、安装 docker
    • 3、启动docker 服务
    • 4、docker 常用命令docker
    • 5、拉取mysql 镜像
    • 6、启动 MySQL 容器
    • 7、远程连接测试 容器化mysql

1、查看机器版本

# redhat版
> cat /etc/redhat-release   # redhat系列存在此文件
'CentOS Linux release 7.9.2009 (Core)'# Ubuntu
> lsb_release -a

2、安装 docker

#1. 有网
> yum install -y docker#2. 离线(tar包下载地址 https://download.docker.com/linux/static/stable/x86_64/)# 解压(解压后生成 docker 文件夹)
> tar -zxvf docker-23.0.6.tgz# 将解压后的命令全部加入到 $PATH 否则 start docker 会报错 (因为dockerd 服务启动时,会自动启动其他服务如containerd)
> sudo ln -s /home/zyp/opt/docker/*  /usr/bin# 注册系统服务
> sudo vim /etc/systemd/system/docker.service'[Unit]Description=Docker Application Container EngineDocumentation=https://docs.docker.comAfter=network-online.target firewalld.serviceWants=network-online.target[Service]Type=notify# the default is not to use systemd for cgroups because the delegate issues still# exists and systemd currently does not support the cgroup feature set required# for containers run by dockerExecStart=/usr/bin/dockerd          # 启动主命令ExecReload=/bin/kill -s HUP $MAINPID# Having non-zero Limit*s causes performance problems due to accounting overhead# in the kernel. We recommend using cgroups to do container-local accounting.LimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinity# Uncomment TasksMax if your systemd version supports it.# Only systemd 226 and above support this version.#TasksMax=infinityTimeoutStartSec=0# set delegate yes so that systemd does not reset the cgroups of docker containersDelegate=yes# kill only the docker process, not all processes in the cgroupKillMode=process# restart the docker process if it exits prematurelyRestart=on-failureStartLimitBurst=3StartLimitInterval=60s[Install]WantedBy=multi-user.target
'# docker 相关配置
> sudo mkdir /etc/docker
> sudo vim /etc/docker/daemon.json
'
{"data-root": "/home/zyp/lib/docker_data"     # docker 数据保存地址默认保存地址/var/lib/docker
}
'# 给系统服务添加执行权限
> sudo chmod +x /etc/systemd/system/docker.service# 重载配置文件c
> sudo systemctl daemon-reload

3、启动docker 服务

# 启动
> sudo systemctl start docker# 启动时报错,查看日志(journalctl -xe:查看系统日志,并输出最近的错误消息和事件)> sudo journalctl -xe
# 报错,docker 用户组不存在
'could not change group /var/run/docker.sock to docker: group docker not found'# 解决添加用户组
> sudo groupadd docker# 添加自己账户名进docker 用户组,目的:不使用 sudo 访问docker服务
> sudo usermod 自己用户名 -aG docker     # 查看 docker 启动信息 #dockerd 服务本地默认使用unix 套接字进行通讯
> docker info"'
Client:Context:    defaultDebug Mode: falseServer:Containers: 0      # 容器数量Running: 0Paused: 0Stopped: 0Images: 0          # 镜像数量Server Version: 23.0.6Storage Driver: overlay2Backing Filesystem: xfsSupports d_type: trueUsing metacopy: falseNative Overlay Diff: trueuserxattr: falseLogging Driver: json-fileCgroup Driver: cgroupfsCgroup Version: 1Plugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: runc io.containerd.runc.v2Default Runtime: runcInit Binary: docker-initcontainerd version: 3dce8eb055cbb6872793272b4f20ed16117344f8runc version: v1.1.7-0-g860f061init version: de40ad0Security Options:seccompProfile: builtinKernel Version: 3.10.0-1160.42.2.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64                   # 系统信息CPUs: 18Total Memory: 35.2GiBName: dp96ID: 1334551c-2ea3-4711-b0a6-b6cee4c63566Docker Root Dir: /home/zyp/lib/docker_data     # docker数据存储指定目录(默认/var/lib/docker)Debug Mode: falseRegistry: https://index.docker.io/v1/  # 默认镜像仓库Experimental: falseInsecure Registries: 127.0.0.0/8Live Restore Enabled: falseProduct License: Community Engine'"

4、docker 常用命令docker

  1. docker version:检查Docker客户端和服务端版本。
  2. docker info:显示有关Docker系统的详细信息,包括运行中的容器数量、镜像数量、存储驱动等。
  3. docker images:列出本地所有的镜像。
  4. docker pull:从Docker Hub或其他注册表下载镜像。
  5. docker run:创建并启动一个新的容器。
  6. docker ps:列出正在运行的容器。 # 查看所有容器 docker ps -a
  7. docker logs:查看容器的日志输出。
  8. docker stop:停止容器。
  9. docker rm:删除容器。
  10. docker rmi:删除本地的一个或多个镜像。
  11. docker exec:在运行中的容器中执行命令。
  12. docker build:通过Dockerfile构建一个新的镜像。
  13. docker save imageid > newname: 保存镜像到本地
  14. docker load < newname: 加载本地镜像

5、拉取mysql 镜像

# 1. 有网
> docker pull mysql:5.7# 2. 离线 (镜像市场 网易峰巢 https://c.163yun.com/hub#/library/repository;)
# 找有网主机拉取相应镜像
> docker pull hub.c.163.com/library/mysql:5.7
# 保存镜像
> docker save 9e64176cd8a2 > mysql5.7
# 离线传输 并 加载镜像
> docker  load < mysql5.7
# 加载后镜像重命名(加载后 REPOSITORY TAG 为<none>)
> docker tag 9e64176cd8a2 mysql:5.7

在这里插入图片描述

6、启动 MySQL 容器

# 初次启动容器
> docker run --name mysql5.7                                    # 定义容器名称-e MYSQL_ROOT_PASSWORD='123456'                    # mysql root账户密码-p 3306:3306                                       # 将主机端口3306映射到容器MySQL服务端口-d mysql:5.7                                       # 镜像文件# 进入容器内确认容器内MySQL 配置文件、数据存储地址、日志地址
>  docker exec -it mysql5.7 bash          # 将mysql 容器中的配置文件、初始化日志、初始化数据 复制到宿主机上
> docker cp mysql5.7:/etc/mysql/. /home/zyp/lib/mysql/conf
> docker cp mysql5.7:/var/log/. /home/zyp/lib/mysql/log
> docker cp mysql5.7:/var/lib/mysql/. /home/zyp/lib/mysql/datadir# 删除已启动的容器
> docker stop mysql5.7
> docker rm -f mysql5.7# 以卷映射的方式重新创建并启动 mysql 容器
#(原因:容器运行停止后内数据会自动清空,将容器内相关文件进映射到宿主机,可持久化存储数据)
> docker run --name mysql5.7                                    # 定义容器名称-e MYSQL_ROOT_PASSWORD='123456'                    # mysql root账户密码-p 3306:3306                                       # 将主机端口3306映射到容器MySQL服务端口-v /home/zyp/lib/mysql/conf:/etc/mysql            # 将宿主机mysql配置文件、日志、数据路径挂载到容器中,实现数据持久化存储-v /home/zyp/lib/mysql/datadir:/var/lib/mysql      -v /home/zyp/lib/mysql/log:/var/log-d mysql:5.7                                       # 镜像文件

官方mysql启动文档

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

7、远程连接测试 容器化mysql

import pymysqlconn = pymysql.connect(host='10.18.xx.xx',port=3306,user='root',password='123456',database='mysql',charset='utf8')
cursor = conn.cursor()
cursor.execute('show tables;')
print(cursor.fetchall())
cursor.close()
conn.close()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/638186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6种解决msvcp140.dll文件丢失的有效方法讲解

msvcp140.dll是一个动态链接库文件&#xff0c;它是Microsoft Visual C 2015 Redistributable的一部分。这个文件通常位于Windows操作系统的System32文件夹中&#xff0c;它包含了许多用于支持C编程语言的函数和类。当您在运行一个需要使用这些函数和类的应用程序时&#xff0c…

支付宝小程序开发踩坑笔记(支付宝、学习强国小程序)

1、接口请求安卓端回调 success&#xff0c;IOS 端回调 fail 原因&#xff1a;dataType 设置不对&#xff0c;默认是 json 格式&#xff0c;对返回数据会进行 json 解析&#xff0c;如果解析失败&#xff0c;就会回调 fail 。加密传输一般是 text 格式。 2、input 禁止输入空格…

【Docker】未来已来 | Docker技术在云计算、边缘计算领域的应用前景

欢迎来到英杰社区&#xff1a; https://bbs.csdn.net/topics/617804998 欢迎来到阿Q社区&#xff1a; https://bbs.csdn.net/topics/617897397 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff…

【轮式平衡机器人】——角度/速度/方向控制分析软件控制框架

轮式平衡机器人具有自不稳定性&#xff0c;可类比一级倒立摆系统的控制方法&#xff0c;常见有反馈线性化方法、非线性PID控制、自适应控制、自抗扰控制&#xff0c;还有改进的传统缺乏对外界干扰和参数改变鲁棒性的滑模变结构控制。我们采用较为简单的双闭环PID控制实现平衡模…

解锁黑匣子:Chain-of-Note如何为(RAG)带来透明度

英文原文地址&#xff1a;https://ai.plainenglish.io/unlocking-the-black-box-how-chain-of-note-brings-transparency-to-retrieval-augmented-models-rag-ae1ebb007876 论文地址&#xff1a;https://arxiv.org/pdf/2311.09210.pdf 2023 年 11 月 16 日 介绍 检索增强语…

HTML CSS 发光字头特效

效果展示&#xff1a; 代码&#xff1a; <html><head> </head><style>*{margin: 0;padding: 0;}body {text-align: center;}h1{/* border: 3px solid rgb(201, 201, 201); */margin-bottom: 20px;}.hcqFont {position: relative;letter-spacing: 0.07…

构建高可用消息队列系统 01

构建高可用消息队列系统 01 引言1. RabbitMQ简介介绍1.1 什么是RabbitMQ1.2 RabbitMQ的核心特性1.3 RabbitMQ与AMQP 2.安装RabbitMQ3.消息队列实践总结 引言 在当今互联网时代&#xff0c;消息队列系统扮演着至关重要的角色&#xff0c;它们被广泛应用于分布式系统、微服务架构…

REVIT二次开发根据类别选择元素

步骤1 选择高亮选择的元素 步骤2 高亮显示 using System; using System.Collections.Generic; using System.Linq; using System.Text;

JVM(上)

目录 一、JVM概述 一、JVM作用 二、JVM整体组成部分 二、JVM结构-类加载 一、类加载子系统概述 二、类加载过程 1.加载 2.链接 3.初始化&#xff08;类加载过程中的初始化&#xff09; 三、类加载器分类 大致分两类&#xff1a; 细致分类&#xff1a; 四、双亲委派机制 五、打…

Oracle篇—参数文件在11gRAC或12cRAC的启动位置介绍

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

LeetCode.2788. 按分隔符拆分字符串

题目 题目链接 分析 题目的意思是给我们一个字符串数组和一个分隔符&#xff0c;让我们按照分隔符把字符串数组分割成新的字符串数组。 看到这个描述&#xff0c;这不就是直接就是利用 按照分隔符分割字符串的系统库函数split()&#xff0c;这个函数的意思就是 把一个字符串…

ISA Server2006部署RuoYi无法登录的问题

ISA Server2006部署RuoYi无法正常登录。每次登录都会报错如下&#xff1a; 无效的会话&#xff0c;或者会话已过期&#xff0c;请重新登录。 原因分析 在nginx中部署没有问题&#xff0c;在ISA Server就会报这个错。根据登录的原理&#xff0c;我猜测可能是headr中的Author…

思迅商旗-loaddata-信息泄露-未公开Day漏洞复现

0x01阅读须知 本文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考。本文章仅用于信息安全防御技术分享&#xff0c;因用于其他用途而产生不良后果,作者不承担任何法律责任&#…

浅析智能家居企业面临的组网问题及解决方案

在这个快速发展的时代&#xff0c;组网对于企业的发展来说是一个至关重要的环节。 案例背景&#xff1a; 案例企业是一家智能家居制造企业&#xff0c;在不同城市分布有分公司、店铺、工厂&#xff0c;这些点原本都是各自采购网络&#xff0c;与总部进行日常沟通、访问。 现在…

采集B站up主视频信息

一、网页信息&#xff08;示例网址&#xff1a;https://space.bilibili.com/3493110839511225/video&#xff09; 二、查看响应数据 三、查看数据包内容 四、相关代码&#xff08;代码内容未进行翻页爬取&#xff09; # Time: 2024/1/19 16:42 # Author: 马龙强 # File: 采集B…

【征服redis14】认真理解一致性Hash与Redis的三种集群

前面我们介绍了主从复制的方式和sentinel方式&#xff0c;这里我们看第三种模式-Cluster方式。 目录 1.前两种集群模式的特征与不足 2.Cluster模式 2.1 Cluster模式原理 2.2 数据分片与槽位 2.3 Cluster模式配置和实现 3.一致性Hash 3.1 哈希后取模 3.2 一致性Hash算法…

幻兽帕鲁开服教程——游戏

幻兽帕鲁开服教程——游戏 1. 安装服务器2. 服务器配置调整3. 运行环境Microsoft Visual C Runtime4. 加入服务器 这是研究开服时顺手写的笔记&#xff0c;也方便后来者。 如果你熟悉你所使用的操作系统的话&#xff0c;windows和linux应该区别不大。 1. 安装服务器 1.安装ste…

HarmonyOS应用开发的工程目录结构

在介绍鸿蒙应用开发的细节&#xff0c;我们来了解工程目录结构&#xff0c;这样我们才知道我们能做什么。 我们现在来一一介绍这些目录都是用来做什么的。 AppScope > app.json5 应用级的配置信息 AppScope > resources 这个目录下的base>element用于存放全局使用的…

跑分方面,这款 JavaScript 库在全球框架榜单中的表现比 React 要好得多

最初的动机 2021 年 11 月 左右&#xff0c;Strve 第一个版本发布&#xff0c;社区的反馈大部分是支持&#xff0c;也有少部分小伙伴提出了质疑&#xff0c;这都正常。你只要在社区发布一些作品&#xff0c;就必须接受其他人对你的作品的评价。 当初&#xff0c;开发 Strve 的…

循序渐进学 JavaScript <二>

续 <一> 九、JavaScript常见内置类 9.1 原始类型的包装类 基本数据类型也可以调用属性 在理论上来说它们是没有办法获取属性或者调用方法的 原始类型是简单的值&#xff0c;默认并不能调用属性和方法js 为了可以使其获取属性和调用方法&#xff0c;对其封装了对应的包装…