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

Docker部署MySQL

(一)安装Docker

首先需要准备一个Linux虚拟机系统,我这里选择CentOS7发行版的作为演示,并使用MobaXterm连接虚拟机。
在这里插入图片描述
在这里插入图片描述

①卸载旧版本的Docker

需要先进入root权限,再执行以下执行

yum remove docker \
 docker-client \
 docker-client-latest \
 docker-common \
 docker-latest \
 docker-latest-logrotate \
 docker-logrotate \
 docker-engine

②配置Docker的yum库

首先安装一个yum工具

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

安装成功后执行命令,配置Docker的yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

③安装Docker引擎

sudo yum install -y docker-ce docker-ce-cli containerd.io

④验证Docker版本

docker -v

⑤启动与设置Docker服务

//启动Docker进程
sudo systemctl start docker
//停止Docker进程
sudo systemctl stop docker
//设置开机自启
sudo systemctl enable docker

⑥校验Docker服务

//查看是否开启Docker进程
docker images

如下图所示则是成功开启
在这里插入图片描述

⑥配置阿里云/腾讯云镜像加速器

进入阿里云官网并找到 容器镜像服务ACR
在这里插入图片描述
在这里插入图片描述
获取到个人的镜像加速器

  1. 创建配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
// 替换为你的阿里云控制台获取的专属加速地址
"registry-mirrors": ["https://(your-aliyun-mirror.mirror).aliyuncs.com"] 
}
EOF
  1. 重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker

安装成功!!

  • 常用指令
//查看Docker版本
docker --version

//查看运行中的容器
docker ps

//停止所有容器
docker stop $(docker ps -aq)
  • 镜像库推荐
    官方镜像库:Docker Hub (https://hub.docker.com)
    国内加速源:{
    中科大镜像:https://docker.mirrors.ustc.edu.cn
    网易镜像:https://hub-mirror.c.163.com
    腾讯云镜像:https://mirror.ccs.tencentyun.com
    阿里云镜像(需登录控制台获取专属地址)
    }

(二)部署MySQL

一、安装Mysql

①创建并运行容器

在这里插入图片描述

docker run -d \
    --name mysql \
    //部署在端口3307上(防止与以前Linux虚拟机上非使用Docker安装的Mysql所占端口冲突)
    -p 3307:3306 \    
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=123456 \   //设置密码
    mysql

②验证容器状态

//查看容器是否运行
docker ps -a | grep mysql

在这里插入图片描述
若显示Up则是成功运行

③检查启动日志

//查看容器启动日志
docker logs mysql

④连接MySQL验证服务

  1. 在虚拟机上进行连接Mysql
//从宿主机连接(使用映射的端口)
mysql -h 192.168.xxx.xxx -P 3307 -u root -p123456
  1. 使用DataGrip或其他客户端在Windows系统上进行远程连接
    在这里插入图片描述

⑤设置开机自启

//设置容器随Docker服务自动启动
docker update --restart=always mysql

二、安装解析

在这里插入图片描述
隔离环境指的是运行该程序时它与其他进程之间是互相隔离的、互相不干扰的,也就可以在一台服务器上部署多个应用,甚至去部署一个Mysql集群都没有问题。
我们也就可以在该公共仓库中找到各种各样常用软件的镜像,也可以把自己构建好的镜像上传上去。

(三)命令解读

在这里插入图片描述

一、创建并运行容器的命令解析

在这里插入图片描述

①端口为什么需要"映射":

假如现在有一台服务器(类似我们的虚拟机),我们可以随意地使用主机对它进行访问。现在它在内部的一个容器中部署了MySQL数据库,且它的端口号为3306。但是因为容器的隔离环境让它获得了自己独立的内存空间、文件系统以及网络空间,所以该MySQL容器里的进程启动后甚至还能获得自己的IP地址,而该网络空间对外是不可访问的。
根据一个指令来获取该MySQL服务器的IP地址
在这里插入图片描述
在这里插入图片描述
当我们直接去访问该地址会发现访问不通,因为它是对外隔离的
在这里插入图片描述
因此如果我们的客户端想要去直连该容器的端口是会被拒绝的。
那么我们就需要去连接外边的这台服务器(或虚拟机),也就是容器所在的该及机器(称之为宿主机)。再去做端口映射,把宿主机的3306端口与容器的3306端口做映射,因为Docker内部可以帮助我们做好该映射。当我们去访问外部机器的3306端口时,Docker就会把该请求转到容器内的3306端口,也就相当于间接地访问到了该容器。

而-p 3306:3306指令前面的端口指的是宿主机端口,后面的端口指的是容器内端口(它取决于进程,是不需要进行改动的,安装的是MySQL,它的容器内端口就永远都是3306)。假设在该虚拟机上有两台MySQL数据库,那么它们的容器内端口都是3306,因为它们互相不冲突,可以共享该端口;而宿主机端口需要进行变化,两台数据库映射的宿主机端口不同。

②-e 参数的环境变量是由该镜像制作者来决定的

我们要通过查看镜像文档来获取该参数
在这里插入图片描述
可以直接在官网上进行查询

二、镜像命名规范

在这里插入图片描述

http://www.dtcms.com/a/51972.html

相关文章:

  • Python:简单的爬虫程序,从web页面爬取图片与标题并保存MySQL
  • 大模型核心要素完全解析:从数字神经元到智能对话的奥秘
  • go语言数据类型
  • (50)[HGAME 2023 week2]before_main
  • AutoGen学习笔记系列(六)Tutorial - Termination
  • unittest框架 核心知识的系统复习及与pytest的对比
  • uniapp x 学习之 uts 语言快速入门
  • 【Embedding】何为Embedding?
  • 筑牢网络安全防线:守护您的数据安全
  • 单体架构、集群、分布式、微服务的区别!
  • Redis设计与实现-数据结构
  • Selenium遇到Exception自动截图
  • 【大模型学习】第八章 深入理解机器学习技术细节
  • 【前端】【vue-i18n】安装和使用全解
  • Redis Stream
  • Ubuntu20.04 在离线机器上安装 NVIDIA Container Toolkit
  • [项目]基于FreeRTOS的STM32四轴飞行器: 三.电源控制
  • llama-factory || AutoDL平台 ||启动web界面
  • LeetCode1328
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-附录C-JavaScript 库和框架
  • 驱动开发系列43 - Linux 显卡KMD驱动代码分析(四)- DRM设备操作
  • [AI]从零开始的so-vits-svc歌声推理及混音教程
  • 智能汽车制造:海康EasyNVR多品牌NVR管理平台实现无插件视频监控直播方案
  • 数字IC后端实现教程| Clock Gating相关clock tree案例解析
  • 构建自己的AI客服【根据用户输入生成EL表达式】
  • iOS安全和逆向系列教程 第16篇:Frida入门与高级应用
  • sql sqlserver的进程资源查看,杀掉多余进程
  • 非平稳时间序列分析(三)——季节模型(SARIMA、STL、Holt-Winters)
  • 盛铂科技SCP4000射频微波功率计与SPP5000系列脉冲峰值 USB功率计 区别
  • VSCode配置优化指南:打造高效开发环境的终极实践