从安装Docker到打包迁移MySQL的完整指南

news2024/9/29 11:35:28

从安装Docker到打包迁移MySQL的完整指南

在这里插入图片描述

每一天过得充实,眼中无迷茫,心中无烦恼。日子就会充满希望,岁月就会洒满清欢。

这篇文章将带你从零开始,在CentOS服务器上安装Docker、使用Docker部署MySQL数据库,并打包和迁移MySQL容器到另一台服务器。


1. 安装Docker

Docker是一个用于创建、部署和运行应用程序的开源平台。它允许你将应用程序与其所有依赖项打包成一个称为容器的标准单元。以下是在CentOS上安装Docker的步骤。

1.1 更新系统软件包

首先,更新系统的软件包索引,以确保你有最新的软件包版本。

sudo yum update -y
1.2 安装依赖包

安装一些必要的依赖包,这些包将帮助你管理Docker存储库。

sudo yum install -y yum-utils
1.3 添加Docker存储库

将Docker的官方存储库添加到你的系统中。

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.4 安装Docker引擎

安装Docker CE(社区版)以及CLI工具和containerd.io。

sudo yum install -y docker-ce docker-ce-cli containerd.io
1.5 启动并设置Docker为开机自启动

启动Docker服务并将其设置为开机自启动。

sudo systemctl start docker
sudo systemctl enable docker
1.6 验证Docker安装

运行以下命令,验证Docker是否已正确安装。

sudo docker run hello-world

如果你看到“Hello from Docker!”的消息,说明Docker安装成功。


在这篇关于从安装 Docker 到打包迁移 MySQL 的指南中,我们将详细介绍 Docker 的安装和使用过程,并包括一些关键配置,如 Docker 镜像加速器的设置。以下是文章的扩展内容,包括如何设置镜像加速器。

2. 配置 Docker 镜像加速器

为了提高 Docker 镜像的下载速度,特别是在网络环境不理想的情况下,设置镜像加速器是一个常见的优化手段。镜像加速器是国内一些高校和组织提供的服务,它们可以加速 Docker Hub 镜像的下载。

2.1 配置 Docker 镜像加速器

要配置 Docker 的镜像加速器,你可以在 Docker 的配置文件中添加以下内容:

{
    "registry-mirrors": [
        "https://dockerproxy.com",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn"
    ]
}

参数解释

  • registry-mirrors:这是一个列表,用于定义 Docker 的镜像加速器地址。当 Docker 拉取镜像时,会首先尝试从这些镜像加速器获取。
    • https://dockerproxy.com:一个通用的 Docker 镜像加速器。
    • https://docker.nju.edu.cn:由南京大学提供的镜像服务,加速效果显著。
    • https://docker.mirrors.sjtug.sjtu.edu.cn:由上海交通大学提供的镜像服务,优化了镜像下载速度。
2.2 如何应用配置

在 CentOS 上,你可以将上述配置添加到 Docker 的配置文件中:

  1. 打开或创建 Docker 的配置文件 /etc/docker/daemon.json

    sudo nano /etc/docker/daemon.json
    
  2. 将上述 JSON 配置粘贴到文件中并保存。

  3. 重新启动 Docker 以应用更改:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

通过配置镜像加速器,Docker 将优先从指定的加速器地址拉取镜像,极大地提高了镜像下载的速度,特别是在国内环境下,这一步尤为重要。


此部分内容将帮助用户在安装和配置 Docker 时,更有效地进行镜像管理,减少等待时间,提升整体使用体验。

3. 使用Docker部署MySQL

MySQL是一种流行的开源关系数据库管理系统。在Docker中部署MySQL非常简单。以下步骤将引导你如何在Docker中运行MySQL容器。

3.1 拉取MySQL镜像

为了加速镜像的下载速度,建议使用国内的镜像源。以下是从DaoCloud镜像源拉取MySQL官方镜像的命令:

sudo docker pull daocloud.io/library/mysql:8.0

千万千万不要使用下面命令

sudo docker pull mysql:8.0

image-20240823112608036

image-20240823112622659

3.2 运行MySQL容器

使用拉取的MySQL镜像启动一个容器,并将MySQL的3306端口映射到主机的3306端口,以便外部访问。

sudo docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql:8.0

参数说明:

  • --name mysql-container:指定容器名称为mysql-container
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw:设置MySQL的root用户密码为my-secret-pw
  • -p 3306:3306:将容器内的3306端口映射到主机的3306端口。
  • -d mysql:8.0:在后台运行MySQL 8.0镜像。
3.3 配置MySQL允许远程访问

进入MySQL容器,允许root用户从任意主机访问数据库。

sudo docker exec -it mysql-container mysql -uroot -p

在MySQL命令行中,运行以下命令:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
FLUSH PRIVILEGES;

如果你希望创建一个新用户以用于远程访问,可以运行以下命令:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'userpassword';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
3.4 防火墙配置(如适用)

如果你的服务器有防火墙,需要确保3306端口对外开放。

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

4. 打包并迁移MySQL容器

当你需要将MySQL容器迁移到另一台服务器时,可以通过Docker的导入和导出功能轻松实现。

4.1 导出MySQL容器

首先,将正在运行的MySQL容器导出为一个.tar文件。

sudo docker save -o mysql-container.tar mysql-container

这将生成一个包含MySQL容器文件系统的mysql-container.tar文件。

4.2 将打包文件复制到新服务器

使用scp或其他文件传输工具将导出的mysql-container.tar文件传输到目标服务器。

scp mysql-container.tar user@new-server:/path/to/destination
4.3 在新服务器上导入MySQL容器

在新服务器上,首先确保Docker已经安装,然后导入容器。

sudo docker load -i mysql-container.tar
4.4 运行导入的MySQL容器

导入完成后,可以使用以下命令运行容器。

sudo docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d <loaded-image-name>

在Docker中,docker importdocker load是两个用于不同场景的命令。它们的区别导致了在某些情况下,docker import不适合,而docker load是正确的选择。

5.补充说明

5.1.docker importdocker load 的区别
  • docker import

    • 用途docker import用于将一个容器快照(通常是通过docker export导出的容器文件系统)导入为一个新的镜像。
    • 特点:它会忽略导出的容器的历史记录和元数据,只保留文件系统。导入后的镜像将没有与Dockerfile相关的元数据(如标签、环境变量等),并且没有镜像历史记录。
    • 使用场景:适合从其他工具或系统中获得的容器快照,但通常不用于正式的镜像迁移。
  • docker load

    • 用途docker load用于从一个.tar归档文件中加载完整的Docker镜像。这个.tar文件通常是通过docker save命令创建的。
    • 特点:保留了所有的镜像历史记录、元数据、标签等。导入后,该镜像与通过docker pull拉取的镜像一致。
    • 使用场景:适合完整的镜像迁移和备份。
5.2. 为什么docker load 是更好的选择

当你使用docker export导出一个运行中的容器时,它只会导出容器的文件系统,不包含镜像的历史和元数据。因此,在某些情况下,使用docker import导入时会丢失这些信息,这对于后续使用和管理可能是不利的。

相比之下,使用docker savedocker load来迁移镜像,可以确保镜像的完整性,包括所有历史、标签和元数据。这种方法适合需要在不同环境之间迁移的镜像,确保迁移后的一致性和可用性。


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

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

相关文章

凯迪仕智能锁携手唐百电器达成战略合作,市场布局和拓展再加速

近日&#xff0c;凯迪仕智能锁中国区总裁陈露拜访唐山百货大楼集团&#xff08;唐百电器&#xff09;&#xff0c;双方深入交流资源优势&#xff0c;结合唐山市场实际情况达成2024年-2025年度深度战略合作&#xff0c;并完成首次签约千余套凯迪仕智能锁战略目标&#xff0c;接下…

【java计算机毕设】中小型人力资源管理系统MySQL ssm vue maven项目设计源代码带项目报告 前后端可分离可不分离

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】中小型人力资源管理系统MySQL ssm vue maven项目设计源代码带项目报告 前后端可分离可不分离 2项目介绍 系统功能&#xff1a; 中小型人力资源管理系统包括管理员、人事管理员、普通人员三种角色。 管理员…

【JS】不使用BigInt实现大整数相加

前言 JS中整数有存储范围&#xff0c;一旦超出这个范围则会丢失精度&#xff0c;通过MAX_SAFE_INTEGER可以看到JS中支持的最大的、安全的正整数为9007199254740991。 JS新类型BigInt可以处理大整数运算&#xff0c;但这次不逃课&#xff0c;本文将尝试自行处理大整数相加&…

python安装包,2024最新Python下载环境配置教程!

一、Python安装包下载 1.进入Python官网下载&#xff08;如果不想去官网下载可以点击领取安装包&#xff09; Python官网主要有python的About (简介)、Downloads (下载)、Documentation(文档)、Community (团体)、Success Stories (成功案例)、News (新闻)、Events (事件动态…

Windows微调Qwen2-7B-Instruct-甄嬛

一、下载Anaconda 在下载Anaconda之前建议先将电脑原有的python卸载&#xff0c;避免造成冲突。 之后一直Next即可&#xff0c;不过要记得在环境变量中添加Anaconda&#xff08;在安装完成之前会有一个Add PATH选项&#xff0c;可以选上&#xff09; 安装完成之后打开CMD&…

3.2.5 宙之CPU的时分复用

点击查看系列文章 》 Interrupt Pipeline系列文章大纲-CSDN博客 3.2.5.1 __primary_switched开始构建0号进程 宙者&#xff0c;古往今来&#xff0c;时间为宙。盘古为了开天辟地&#xff0c;必须分开空间和时间。在时间维度&#xff0c;要对CPU的运行时间进行切分&#xff0c;…

netty编程之自定义编解码器

写在前面 源码 。 本文看下netty如何自定义编解码器。为此netty专门定义抽象类io.netty.handler.codec.MessageToByteEncoder和io.netty.handler.codec.ByteToMessageDecoder,后续我们实现自定义的编解码器就继承这两个类来做。 1&#xff1a;正戏 server 启动类&#xff1a…

卖一辆亏6万搞倾销,极越汽车高管掀了小米汽车遮羞布?

"炮轰解决不了极越销量问题" 作者 | 魏 强 编辑 | 卢旭成 8月22日早9点40分&#xff0c;极越汽车公关负责人徐继业发朋友圈炮轰小米汽车创始人雷军&#xff1a;“雷军这样的企业家&#xff0c;有点公德心和羞耻心好不好&#xff1f;每台车亏6万&#xff0c;亏那么…

Springboot中的mapper与entity难以觉察的匹配问题,困扰我几天时间,形成很大的压力!

最近&#xff0c;应好友邀请&#xff0c;替她做了一个心理疗愈项目的小系统&#xff0c;在编制后台API代码时&#xff0c;遇到了一个不易觉察的问题&#xff0c;终于查找出来&#xff0c;并且解决了&#xff0c;现奉献出来&#xff0c;供大家碰到类似问题&#xff0c;进行参考。…

面试题详解

前言&#xff1a;这一期我们专门来巩固所学知识&#xff0c;同时见识一些面试题。对知识做出一个总结。 1 不创建临时变量交换两个整数 . 第一种方法 #include<stdio.h> int main() {int a 0;int b 0;scanf("%d %d", &a, &b);printf("交换前…

中央空调安装8个标准流程指南

1、内机安装施工队进场第一步就是吊装内机&#xff0c;这里只要注意2个点就可以避免后续问题。 ① 内机离房顶距离不得小于1公分&#xff0c;避免机器运行时与墙顶产生共振。② 内机吊装需考虑百分之一的坡度&#xff0c;接冷凝水的一侧要稍微低一些&#xff0c;避免冷凝水排不…

单个像素的威胁:微小的变化如何欺骗深度学习系统

深度学习&#xff08;DL&#xff09;是人工智能&#xff08;AI&#xff09;的基本组成部分。它的目标是使机器能够执行需要决策机制的任务&#xff0c;这些决策机制往往近似于人类推理。深度学习模型是许多先进应用的核心&#xff0c;例如医疗诊断和自动驾驶汽车。不幸的是&…

饿了么后端登录模块

一、回顾 高并发集群 饿了么后端的登录模块 1、数据库 1. 主从复制(高可用) 2. 传统的主从复制 3. gtids事务型的主从复制 4. 注意 1. server_id唯一 2. 8.x版本需要get_ssl_pub_key 3. 5.x不需要 4. change master to 5. stop | start slave 5. 非交互 import pymy…

uniapp 地图map画出地市轮廓

最近做uniapp项目 H5微信小程序&#xff0c;需要在地图中打点并把相对应的区域轮廓给画出来。 首先查看uniapp官方文档&#xff1a;https://uniapp.dcloud.net.cn/component/map.html 想在uniapp中使用map直接写map标签即可 <view class"page-section page-section-…

CSS实现鼠标hover展开菜单

效果图&#xff1a; HTML源码&#xff1a; 背景图地址需要更改 <!-- 软件介绍 --> <div class"software-box"><div class"software-container"><div class"software-title"><h2>&ldquo; 一个软件搞定所有 &am…

创客匠人老蒋在「IP私域发售六脉神剑落地班」现场金句频出

破认知&#xff0c;提新知&#xff0c;老蒋的观点&#xff0c;再一次带你穿越周期 2024&#xff0c;变革不断&#xff0c;知识服务行业到底该怎么做&#xff1f;「IP私域发售六脉神剑落地班」现场&#xff0c;老蒋作为大课导师&#xff0c;再一次为大家带来了新鲜且颠覆的行业知…

基于SpringBoot的在线笔记网站的设计与实现

目录 项目技术和环境 页面展示 登录注册 管理员页面 用户页面 在线网址 源代码 本系统由十大核心模块构成&#xff0c;包括用户登录与注册模块、个人中心模块、笔记分类与笔记管理模块、笔记详情展示模块、分享协作与收藏管理模块、回收站与用户管理模块&#xff0c;以及…

CoppeliaSim(V-Rep)与ROS1、ROS2接口变迁-2024-

Webots&#xff1a;Webots与ROS1、ROS2接口变迁 Gazebo&#xff1a;Gazebo与ROS1、ROS2接口变迁 ROS1 2016&#xff1a;ROS_Kinetic_18 使用V-Rep3.3.1和Matlab2015b&#xff08;vrep_ros_bridge&#xff09;续 vrep_ros_bridge 插件 一、项目背景与目标 vrep_ros_bridge 是…

[数据集][目标检测]光伏发电板红外图像鸟粪检测数据集VOC+YOLO格式173张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;173 标注数量(xml文件个数)&#xff1a;173 标注数量(txt文件个数)&#xff1a;173 标注类别…

Windows—RAW编程

客服端骨架&#xff1a; #include <iostream> #include <WinSock2.h> #pragma comment(lib,"ws2_32.lib")int main() {WORD wVersionRequested MAKEWORD(2, 2);WSADATA lpWSAData;WSAStartup(wVersionRequested, &lpWSAData);SOCKADDR_IN saddr{ …