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

阿里云服务器安装docker以及mysql数据库

(1) 官方下载路径

  • 官方下载地址: Index of linux/static/stable/x86_64/
  • 阿里云镜像地址: https://mirrors.aliyun.com/docker-ce/
  • 下载最新的 Docker 二进制文件:wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.23.tgz
  • 登录到阿里云服务器,解压上传的 Docker 安装包:
    (2) 将解压后的文件移动到系统路径
  • tar -xvf docker-20.10.23.tgz

    将解压后的文件复制到 /usr/bin 目录下:

    sudo cp docker/* /usr/bin/

(3) 配置 Docker 服务

创建一个 Systemd 服务文件,以便管理 Docker:

sudo vi /etc/systemd/system/docker.service

在文件中添加以下内容:

[Unit]
Description=Docker Application Container Engine
# 描述信息,说明这个服务是 Docker 容器引擎。Documentation=https://docs.docker.com
# 提供 Docker 的官方文档链接,方便用户查阅相关文档。After=network-online.target firewalld.service
# 表示该服务在 `network-online.target` 和 `firewalld.service` 之后启动。
# 确保网络已经准备好,并且防火墙服务(如果存在)已经启动。Wants=network-online.target
# 表示该服务希望 `network-online.target` 被启动,但不是强制依赖。
# 如果 `network-online.target` 启动失败,Docker 服务仍然会尝试启动。[Service]
Type=notify
# 表示 Docker 服务支持通知机制,当服务完全启动后会通知 systemd。
# 这种类型通常用于需要长时间运行的服务。ExecStart=/usr/bin/dockerd
# 指定启动 Docker 服务时执行的命令:`/usr/bin/dockerd` 是 Docker 守护进程的可执行文件。ExecReload=/bin/kill -s HUP $MAINPID
# 指定重新加载服务时执行的命令。这里发送 `HUP` 信号给主进程(`$MAINPID`),让 Docker 重新加载配置。LimitNOFILE=infinity
# 设置文件描述符的最大数量为无限制(infinity)。Docker 可能需要打开大量的文件或连接。LimitNPROC=infinity
# 设置进程的最大数量为无限制(infinity)。确保 Docker 不会因为进程数限制而受到影响。TimeoutStartSec=0
# 设置服务启动超时时间为 0,表示不限制启动时间。
# 如果设置为某个具体值(如 60 秒),系统会在超时后认为服务启动失败。Delegate=yes
# 允许 Docker 自己管理其 cgroups(控制组),而不是由 systemd 直接管理。
# 这对于容器化环境非常重要,因为 Docker 需要对资源进行细粒度控制。KillMode=process
# 指定当停止服务时,只终止主进程(`dockerd`),而不影响其子进程。
# 这可以避免误杀正在运行的容器。Restart=on-failure
# 表示如果服务因非正常原因退出(例如崩溃),systemd 会自动重启该服务。
# 如果服务正常退出(例如手动停止),则不会重启。StartLimitBurst=3
# 在指定的时间间隔内,允许服务最多重启 3 次。
# 如果超过这个次数,systemd 将不再尝试重启服务。StartLimitInterval=60s
# 设置时间间隔为 60 秒。与 `StartLimitBurst` 配合使用,表示在 60 秒内最多允许 3 次重启。[Install]
WantedBy=multi-user.target
# 表示该服务会在进入多用户模式(multi-user.target)时被启动。
# 多用户模式是 Linux 系统的标准运行级别之一,通常用于服务器环境。

保存并退出。

安装包下载的路径是root/tool/A001_Docker/docker,所以我的配置文件里面的这句需要修改ExecStart=/usr/bin/dockerd

ExecStart=/root/tool/A001_Docker/docker/

  1. 启动 Docker 服务
    启动 Docker 并检查状态:

    sudo systemctl start docker
    sudo systemctl status docker
(4) 启动 Docker 服务

重新加载 Systemd 配置并启动 Docker:

sudo systemctl daemon-reload

sudo systemctl start docker

sudo systemctl enable docker

(5) 验证安装

docker --version

4. 使用阿里云镜像加速(可选)

为了加快 Docker 镜像的拉取速度,可以配置阿里云的镜像加速器。

登录阿里云控制台,进入 容器镜像服务,找到你的专属镜像加速地址。

(2) 配置 Docker Daemon

编辑 Docker 的配置文件:

sudo mkdir -p /etc/docker sudo vi /etc/docker/daemon.json

在文件中添加以下内容(替换 <你的加速地址> 为实际的加速地址):

{ "registry-mirrors": ["<你的加速地址>"] }

(3) 重启 Docker

sudo systemctl restart docker

测试 Docker

docker run hello-world

拉取mysql镜像

docker pull mysql:5.7

# 或

docker pull mysql:8.0

(1) 启动容器

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

  • --name mysql-container:为容器指定一个名称(这里是 mysql-container)。
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw:设置 MySQL 的 root 用户密码为 my-secret-pw
  • -d:以后台模式运行容器。
  • -p 3306:3306:将宿主机的 3306 端口映射到容器的 3306 端口。
  • mysql:latest:使用的 MySQL 镜像版本(这里是最新的版本)。
(2) 使用 Docker 内部连接

进入正在运行的 MySQL 容器:

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

数据持久化

创建数据卷

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 -v /path/to/your/data:/var/lib/mysql mysql:latest

测试数据持久化

即使删除容器,数据仍然会保存在 /path/to/your/data 中。重新启动一个新的 MySQL 容器并挂载相同的目录即可恢复数据。

 自定义配置文件

如果你需要自定义 MySQL 的配置文件(如 my.cnf),可以将其挂载到容器中。

(1) 创建自定义配置文件

创建一个名为 my.cnf 的文件,内容如下(可以根据需求修改):

[mysqld]

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

max_connections=200

(2) 挂载配置文件

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

-v /path/to/your/my.cnf:/etc/mysql/my.cnf \

-v /path/to/your/data:/var/lib/mysql \

mysql:latest

7. 停止和删除容器

(1) 停止容器

docker stop mysql-container

(2) 删除容器

docker rm mysql-container

注意:删除容器不会删除挂载的数据卷中的数据。

相关文章:

阿里云服务器安装docker以及mysql数据库

(1) 官方下载路径 官方下载地址: Index of linux/static/stable/x86_64/阿里云镜像地址: https://mirrors.aliyun.com/docker-ce/下载最新的 Docker 二进制文件&#xff1a;wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.23.tgz登录到阿里云服务…...

力扣经典算法篇-5-多数元素(哈希统计,排序,摩尔投票法)

题干&#xff1a; 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1&#xff1a; 输入&#xff1a;nums [3,2,3] 输出&…...

axios介绍以及配置

Axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;用于浏览器和 Node.js 环境中进行 HTTP 请求。 一、特点与基本用法 1.特点 浏览器兼容性好&#xff1a;能在多种现代浏览器中使用&#xff0c;包括 Chrome、Firefox、Safari 等。支持 Promise API&#xff1a;基于 Prom…...

深入解析:HarmonyOS Design设计语言的核心理念

深入解析&#xff1a;HarmonyOS Design设计语言的核心理念 在当今数字化迅速发展的时代&#xff0c;用户对操作系统的体验要求越来越高。华为的HarmonyOS&#xff08;鸿蒙操作系统&#xff09;应运而生&#xff0c;旨在为用户提供全场景、全设备的智慧体验。其背后的设计语言—…...

大数据技术之Scala:特性、应用与生态系统

摘要 Scala 作为一门融合面向对象编程与函数式编程范式的编程语言&#xff0c;在大数据领域展现出独特优势。本文深入探讨 Scala 的核心特性&#xff0c;如函数式编程特性、类型系统以及与 Java 的兼容性等。同时&#xff0c;阐述其在大数据处理框架&#xff08;如 Apache Spa…...

程序化广告行业(47/89):竞价指标剖析与流量对接要点

程序化广告行业&#xff08;47/89&#xff09;&#xff1a;竞价指标剖析与流量对接要点 大家好&#xff01;一直以来&#xff0c;我都希望能和大家一同深入探索程序化广告行业的奥秘&#xff0c;这也是我持续撰写这一系列博客的动力。今天&#xff0c;咱们接着来剖析程序化广告…...

dfs记忆化搜索刷题 + 总结

文章目录 记忆化搜索 vs 动态规划斐波那契数题解代码 不同路径题解代码 最长递增子序列题解代码 猜数字大小II题解代码 矩阵中的最长递增路径题解代码 总结 记忆化搜索 vs 动态规划 1. 记忆化搜索&#xff1a;有完全相同的问题/数据保存起来&#xff0c;带有备忘录的递归 2.记忆…...

vue2 全局封装axios统一管理api

在vue项目中&#xff0c;经常会使用到axios来与后台进行数据交互&#xff0c;axios丰富的api满足我们基本的需求。但是对于项目而言&#xff0c;每次都需要对异常进行捕获或者处理的话&#xff0c;代码会很繁重冗余。我们需要将其公共部分封装起来&#xff0c;比如异常处理&…...

大模型有哪些算法

大模型&#xff08;Large-scale Models&#xff09;通常指参数量大、架构复杂、在特定任务或领域表现出色的深度学习模型。这些模型的算法核心往往基于Transformer 架构及其变体&#xff0c;同时结合了大规模数据、硬件加速和优化技巧。以下是当前主流大模型及其核心算法的分类…...

【Linux】进程的详讲(中上)

目录 &#x1f4d6;1.什么是进程? &#x1f4d6;2.自己写一个进程 &#x1f4d6;3.操作系统与内存的关系 &#x1f4d6;4.PCB(操作系统对进程的管理) &#x1f4d6;5.真正进程的组成 &#x1f4d6;6.形成进程的过程 &#x1f4d6;7、Linux环境下的进程知识 7.1 task_s…...

Python Cookbook-4.17 字典的并集与交集

任务 给定两个字典&#xff0c;需要找到两个字典都包含的键(交集)&#xff0c;或者同时属于两个字典的键(并集)。 解决方案 有时&#xff0c;尤其是在Python2.3中&#xff0c;你会发现对字典的使用完全是对集合的一种具体化的体现。在这个要求中&#xff0c;只需要考虑键&am…...

优选算法的巧思之径:模拟专题

专栏&#xff1a;算法的魔法世界 个人主页&#xff1a;手握风云 目录 一、模拟 二、例题讲解 2.1. 替换所有的问号 2.2. 提莫攻击 2.3. Z字形变换 2.4. 外观数列 2.5. 数青蛙 一、模拟 模拟算法说简单点就是照葫芦画瓢&#xff0c;现在草稿纸上模拟一遍算法过程&#xf…...

【云服务器】在Linux CentOS 7上快速搭建我的世界 Minecraft 服务器搭建,并实现远程联机,详细教程

【云服务器】在Linux CentOS 7上快速搭建我的世界 Minecraft 服务器搭建&#xff0c;详细详细教程 一、 服务器介绍二、下载 Minecraft 服务端三、安装 JDK 21四、搭建服务器五、本地测试连接六、添加服务&#xff0c;并设置开机自启动 前言&#xff1a; 推荐使用云服务器部署&…...

文本分析(非结构化数据挖掘)——特征词选择(基于TF-IDF权值)

TF-IDF是一种用于信息检索和文本挖掘的常用加权算法&#xff0c;用于评估一个词在文档或语料库中的重要程度。它结合了词频&#xff08;TF&#xff09;和逆文档频率&#xff08;IDF&#xff09;两个指标&#xff0c;能够有效过滤掉常见词&#xff08;如“的”、“是”等&#x…...

【JavaSE】小练习 —— 图书管理系统

【JavaSE】JavaSE小练习 —— 图书管理系统 一、系统功能二、涉及的知识点三、业务逻辑四、代码实现4.1 book 包4.2 user 包4.3 Main 类4.4 完善管理员菜单和普通用户菜单4.5 接着4.4的管理员菜单和普通用户菜单&#xff0c;进行操作选择&#xff08;1查找图书、2借阅图书.....…...

命令模式介绍及应用案例

命令模式介绍 命令模式&#xff08;Command Pattern&#xff09; 是一种行为设计模式&#xff0c;它将请求封装为一个对象&#xff0c;从而使你可以用不同的请求对客户进行参数化&#xff0c;并且支持请求的排队、记录日志、撤销操作等功能。命令模式的核心思想是将“请求”封…...

多线程(多线程案例)(续~)

目录 一、单例模式 1. 饿汉模式 2. 懒汉模式 二、阻塞队列 1. 阻塞队列是什么 2. 生产者消费者模型 3. 标准库中的阻塞队列 4. 自实现阻塞队列 三、定时器 1. 定时器是什么 2. 标准库中的定时器 欢迎观看我滴上一篇关于 多线程的博客呀&#xff0c;直达地址&#xf…...

python笔记之函数

函数初探 python在要写出函数很简单&#xff0c;通过关键字def即可写出&#xff0c;简单示例如下 def add(a, b):return ab 以上即可以定义出一个简单的函数&#xff1a;接收两个变量a和b&#xff0c;返回a和b相加的结果&#xff0c;当然这么说也不全对&#xff0c;原因就是…...

合合信息大模型加速器2.0实测:当AI开始“读心术“与“考古“

凌晨三点的编辑部&#xff0c;我盯着屏幕上密密麻麻的财务报表和如天书般的专利图纸&#xff0c;感觉咖啡因正在大脑中上演"黑凤凰"式崩溃。这时&#xff0c;合合信息的AI助手突然开口&#xff1a;"您需要的是自动关联32个数据表&#xff0c;还是让模型直接生成…...

一个判断A股交易状态的python脚本

最近在做股票数据相关的项目&#xff0c;需要用到判断某一天某个时刻A股的状态&#xff0c;比如休市&#xff0c;收盘&#xff0c;交易中等&#xff0c;发动脑筋想了一下&#xff0c;这个其实还是比较简单的&#xff0c;这里我把实现方法分享给大家。 思路 当天是否休市 对于某…...

【go】数组与切片

数组Array 重点&#xff1a; 数组是值类型 数组的定义 var 数组名 [数组大小] 数据类型,例如var intArr [5] int&#xff0c;定义完数组后数组里的元素有默认值。、 数组的地址&intArr、&intArr[0]。 数组占据连续的内存。 int通常是4字节&#xff08;32位&…...

hadoop集群配置-scp命令

scp 命令用于在不同主机之间复制文件或目录&#xff0c;在Hadoop集群配置中常用于将配置文件或相关资源分发到各个节点。以下是 scp 命令的基本用法和在Hadoop集群配置中的示例&#xff1a; 基本语法 scp [-r] [源文件或目录] [目标用户目标主机:目标路径] - -r &#xff1a;…...

闪记(FlashNote):让灵感快速成文的轻量级笔记工具

闪记&#xff08;FlashNote&#xff09;&#xff1a;让灵感快速成文的轻量级笔记工具 你是否经常遇到这样的情况&#xff1a;桌面上放了一大堆的新建123.txt&#xff0c;想记录一个想法&#xff0c;应该是一键开个一个快捷键然后瞬间记录就自动保存了&#xff0c;现在的很多笔记…...

打车APP订单系统逻辑梳理与实现

一、逻辑分析 打车 APP 订单系统是整个打车业务的核心&#xff0c;负责处理从乘客下单到行程结束的一系列流程&#xff0c;涉及乘客、司机和平台三方的交互。 乘客端 下单&#xff1a;乘客打开 APP&#xff0c;输入上车地点、目的地&#xff0c;选择车型等信息后提交订单。此时…...

《大模型部署》——ollama下载及大模型本地部署(详细快速部署)

ollama Ollama 是一款开源跨平台的大语言模型&#xff08;LLM&#xff09;运行工具&#xff0c;旨在简化本地部署和管理 AI 模型的流程。 下载ollama 进入官网下载https://ollama.com/ 选择需要的系统下载 下载完成后直接进行安装 下载大模型 选择想要部署的模型&#…...

【蓝桥杯速成】| 17.完全背包(一维easy版)

题目一&#xff1a;爬楼梯 问题描述 57. 爬楼梯&#xff08;第八期模拟笔试&#xff09; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬至多m (1 < m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a;给定 n 是一个正整…...

移动端六大语言速记:第4部分 - 数据结构

移动端六大语言速记&#xff1a;第4部分 - 数据结构 本文对比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift这六种移动端开发语言的数据结构特性&#xff0c;帮助开发者快速掌握各语言的语法差异。 4. 数据结构 4.1 数组与列表 各语言数组与列表的语法对比&#xff1…...

开源鸿蒙分布式软总线技术研究报告

引言 在现代计算环境中&#xff0c;分布式系统的重要性日益凸显&#xff0c;尤其是在物联网&#xff08;IoT&#xff09;和无处不在的连接的背景下。各种智能设备数量的爆炸式增长以及用户对跨设备无缝体验的需求&#xff0c;推动了分布式操作系统的发展。开源鸿蒙正是在这样的…...

Geotools结合SLD实现矢量中文标注下的乱码和可用字体解析

目录 前言 一、需求溯源 1、原始的SLD渲染 2、最初的效果 二、问题修复 1、还是字符编码 2、如何选择可用的字体 3、如何查看支持的字体库 三、总结 前言 随着地理信息系统&#xff08;GIS&#xff09;技术的不断发展&#xff0c;矢量数据的可视化和标注成为了地理信息展…...

linux 服务器创建服务器启动后服务自启动

1、在/etc/systemd/system/下touch一个文件&#xff1a; touch /etc/systemd/system/your_application.service 2、在文件中写入&#xff1a; [Unit] Descriptionmodules-system Aftersyslog.target[Service] Typeforking Userroot Grouproot ExecStart/bin/bash /usr/loca…...