当前位置: 首页 > news >正文

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()

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

相关文章:

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

前言&#xff1a;在部署hive或airflow 升级过程中&#xff0c;总需要一个对应的数据库存储元数据&#xff0c;一个轻量级的mysql容器刚刚好。轻量、可快速移植、具有隔离性。 文章目录 1、查看机器版本2、安装 docker3、启动docker 服务4、docker 常用命令docker5、拉取mysql …...

2. FPGA的电路结构概述

文章目录 1. 引言2. FPGA的一般结构2.1 概要2.2 FPGA三部分构成间的关系&#xff1a; 3. 小结 1. 引言 结构决定原理。原理未必决定结构。理解FPGA结构&#xff0c;进而能阐明其工作原理很有必要。FPGA产品的风云变换&#xff0c;其基本结构保持相对不变。 2. FPGA的一般结构…...

【Qt】Qt配置

需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、Qt SDK下载 二、配置环境变量 三、新建工程(QWidget) 四、QWidg…...

查看Linux系统内存、CPU、磁盘使用率和详细信息

一、查看内存占用 1、free # free -m 以MB为单位显示内存使用情况 [rootlocalhost ~]# free -mtotal used free shared buff/cache available Mem: 11852 1250 8668 410 1934 9873 Swap: 601…...

HttpServletRequest getServerPort()、getLocalPort() 、getRemotePort() 区别

getRemotePort() 、getServerPort()、getLocalPort() request.getServerPort()、request.getLocalPort() 和 request.getRemotePort() 这三个方法都是获取与HTTP请求相关的端口信息的 客户端(如浏览器)通过某个随机分配的网络连接端口(7070) 向服务器发送HTTP请求( http://exam…...

NVIDIA jetson编译opencv 源码 python版本

安装 jetson-stats 查看GPU的利用率 sudo apt-get install python3-pip sudo -H pip3 install jetson-stats 运行 jtop 进行查看 opencv 编译python版本 编译命令 cmake -D CMAKE_INSTALL_PREFIX/usr/local/opencv-4.6.0 -D CMAKE_BUILD_TYPERELEASE -D WITH_OPENGLON -D …...

TCP的三次握手,四次挥手

三次握手 第一次握手&#xff1a;客户端发送SYN报文&#xff0c;井发送seq为x序列号给服务端&#xff0c;等待服务端的确认第二次握手&#xff1a;服务端发送SYNACK报文&#xff0c;并发送seq为Y的序列号&#xff0c;在确认序列号为x1第三次握手&#xff1a;客户端发送ACK报文&…...

ElasticSearch高阶使用

目录 一、match_all 二、 text和keyword的区别 三、match、term的区别 四、exists query 五、 ids query 六、range query范围查询 七、prefix query前缀查询 八、 wildcard query通配符查询 九、 fuzzy query模糊查询 十、match query匹配查询 十一、multi_match q…...

美易官方:盘前:道指期货跌0.4% “恐怖数据”将发布

盘前&#xff1a;道指期货跌0.4% “恐怖数据”将发布 在今日的盘前交易中&#xff0c;道琼斯工业平均指数期货小幅下跌0.4%&#xff0c;市场正在等待即将发布的“恐怖数据”——美国零售销售数据。这一数据被视为衡量美国经济健康状况的重要指标&#xff0c;因此备受关注。 由于…...

appium之联动pycharm

前置条件&#xff1a; 1.java环境安装好了 2.android-sdk安装好&#xff08;uiautomatorviewer 也可以把这个启动起来&#xff09; 3.appium安装好 4.adb devices查看下设备是否连接 pycharm入门代码--固定写法 from appium import webdriver# 定义字典变量 desired_caps …...

Java中泛型的详细介绍

引言&#xff1a; Java语言中的泛型是一种强大的特性&#xff0c;它允许我们在编写代码时指定类、接口和方法的参数类型。通过使用泛型&#xff0c;我们可以提高代码的重用性、可读性和安全性。在本博客中&#xff0c;我们将详细介绍Java中泛型的知识。 一、泛型的基本概念 泛型…...

chrome 307状态码

问题&#xff1a;不知道什么原因导致http请求chrome始终307跳转到https,这个307的跳转非常恶心的地方是客户端缓存行为&#xff0c;并且非普通的f12下面清除缓存可以去掉 解决办法&#xff1a;使用chrome的清除浏览数据&#xff0c;通过这个方式清除&#xff0c;才能解决。 问…...

Redis在Windows10中安装和配置

1.首先去下载Redis 这里不给出下载地址&#xff0c;自己可以用去搜索一下地址 下载 下载完成后解压到D盘redis下&#xff0c;本人用的是3.2.100 D:\Redis\Redis-x64-3.2.100 2.解压完成后需要设置环境变量&#xff0c;这里新建一个系统环境变量中path 中添加一个文件所…...

华为OD机试 - 特殊的加密算法(Java JS Python C)

题目描述 有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。 规则如下: 明文为一段数字串由 0~9 组成密码本为数字 0~9 组成的二维数组需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里的数字串是由相邻的单元格数字组成,上…...

MySQL——性能优化与关系型数据库

文章目录 什么是性能&#xff1f;什么是关系型数据库&#xff1f;数据库设计范式 常见的数据库SQL语言结构化查询语言的六个部分版本 MySQL数据库故事历史版本5.6/5.7差异5.7/8.0差异 什么是性能&#xff1f; 吞吐与延迟&#xff1a;有些结论是反直觉的&#xff0c;指导我们关…...

【机器学习300问】12、为什么要进行特征归一化?

当线性回归模型的特征量变多之后&#xff0c;会出现不同的特征量&#xff0c;然而对于那些同是数值型的特征量为什么要做归一化处理呢&#xff1f; 一、为了消除数据特征之间的量纲影响 使得不同指标之间具有可比性。例如&#xff0c;分析一个人的身高和体重对健康的影响&…...

CSV文件中json列的处理2

如上所示&#xff0c;csv文件中包含以中括号{}包含的json字段&#xff0c;可用如下方法提取&#xff1a; import pandas as pd from datetime import date todaystr(date.today()) import jsonfilepath/Users/kangyongqing/Documents/kangyq/202401/调课功能使用统计/ file104…...

eNSP学习——部分VLAN间互通、部分VLAN间隔离、VLAN内用户隔离(MUX-VLAN)

MUX VLAN&#xff08;Multiplex VLAN&#xff09;提供了一种通过VLAN进行网络资源控制 的机制。通过MUX VLAN提供的二层流量隔离的机制可以实现企业内部员 工之间互相通信&#xff0c;而企业外来访客之间的互访是隔离的。 特点&#xff1a; 一、主VLAN端口可以和所有VLAN通信 二…...

【音视频】如何播放rtsp视频流

背景 现阶段直播越来越流行&#xff0c;直播技术发展也越来越快。Webrtc和rtsp是比较火热的技术&#xff0c;而且应用也比较广泛。本文通过实践来展开介绍关于rtsp、webrtc的使用过程。 概要 本文重点介绍如何播放rtsp视频流&#xff0c;通过ffplay方式以及VLC media player…...

Qt6入门教程 8:信号和槽机制(连接方式)

目录 一.一个信号与槽连接的例子 二.第五个参数 1.Qt::AutoConnection 2.Qt::DirectConnection 3.Qt::QueuedConnection 4.Qt::BlockingQueuedConnection 5.Qt::UniqueConnection 三.信号 四.connect函数原型 五.信号与槽的多种用法 六.槽的属性 一.一个信号与槽连接…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

CppCon 2015 学习:Time Programming Fundamentals

Civil Time 公历时间 特点&#xff1a; 共 6 个字段&#xff1a; Year&#xff08;年&#xff09;Month&#xff08;月&#xff09;Day&#xff08;日&#xff09;Hour&#xff08;小时&#xff09;Minute&#xff08;分钟&#xff09;Second&#xff08;秒&#xff09; 表示…...

【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架

文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理&#xff1a;检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目&#xff1a;RankRAG&#xff1a;Unifying Context Ranking…...