【Docker】Linux与Windows系统安装Docker+Docker上简单安装MySQL

一、Windows安装Docker

由于我在许多平台搜索Windows下安装Docker的方法,都提到了Win10家庭版无法直接安装Docker。个人电脑就是Win10家庭版,本着实践出真知的想法,个人在本机Win10家庭版实验结果为需要采用下述传统手动安装的办法;同时,在自己Vmware虚拟机上安装了Win10专业版进行演示命令行自动安装步骤。

1.1 更新Windows10系统

如果是Win11系统可以跳过更新步骤。Win10选择更新系统至1903或更高版本,如果版本低于1903,可使用 Windows 10 易升工具手动升级。下载 Windows 10 易升工具(https://www.microsoft.com/zh-cn/software-download/windows10)。查看本机Windows版本,可在CMD(命令提示符)窗口或者Powershell窗口输入:winver 进行查看。

在这里插入图片描述
在这里插入图片描述

1.2打开Powershell输入指令进行安装

在这里插入图片描述

1.2 WSL的两种安装方法

俩种方法选择其中一种即可,微软官方文档:Microsoft WSL文档,其中Win11和Win10的windows10版本2004(内部版本19041或更高)推荐方法二:命令行自动安装。

1.3.1方法一:传统手动安装

运行如下指令启用适用于Linux的Windwos子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

在这里插入图片描述

运行如下指令启用启用“虚拟机平台”可选功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
下载Linux内核更新包

下载前尽量重启一下电脑,下载地址https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4%E2%80%94download-the-linux-kernel-update-package。具体下载类型请看官方文档,根据自己电脑类型进行选择。
在这里插入图片描述
在这里插入图片描述

双击wsl_update_x64.msl文件运行即可。

将WSL2设置为默认版本

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

wsl --set-default-version 2

在这里插入图片描述

下载/安装 Linux 分发版

打开Windows系统自带的Microsoft Store。如果出现无法加载页面等情况,参考Microsoft Store 无法加载页面。应该是不需要用到科学上网。

搜索栏输入Ubuntu或者直接点击下方链接进行加载

  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS
  • Ubuntu 22.04 LTS
  • openSUSE Leap 15.1
  • SUSE Linux Enterprise Server 12 SP5
  • SUSE Linux Enterprise Server 15 SP1
  • Kali Linux
  • Debian GNU/Linux
  • Fedora Remix for WSL
  • Pengwin
  • Pengwin Enterprise
  • Alpine WSL
  • Raft(免费试用版)
  • Alma Linux

点击获取后就自动下载并安装了

在这里插入图片描述

如果不想使用自己电脑上的Microsoft Store,可以选择官网提供的几个版本,点击链接应该就直接下载了:

  • Ubuntu
  • Ubuntu 24.04
  • Ubuntu 22.04 LTS
  • Ubuntu 20.04
  • Ubuntu 20.04 ARM
  • Ubuntu 18.04
  • Ubuntu 18.04 ARM
  • Ubuntu 16.04
  • Debian GNU/Linux
  • Kali Linux
  • SUSE Linux Enterprise Server 12
  • SUSE Linux Enterprise Server 15 SP2
  • SUSE Linux Enterprise Server 15 SP3
  • openSUSE Tumbleweed
  • openSUSE Leap 15.3
  • openSUSE Leap 15.2
  • Oracle Linux 8.5
  • Oracle Linux 7.9
  • Fedora Remix for WSL
Microsoft Store 无法加载页面

按“Win+R”键,在运行窗口中,键入 WSReset.exe并点击“ 确定 ”

在这里插入图片描述

以管理员方式打开Powershell,依次执行如下两个指令:

# 1.删除、卸载当前Microsoft Store
get-appxpackage *store* | remove-Appxpackage
# 2.添加、安装Microsoft Store
add-appxpackage -register "C:\Program Files\WindowsApps\*Store*\AppxManifest.xml" -disabledevelopmentmode

如果依旧无法打开,重启下电脑,我是重启完之后才可以正常使用的。

运行刚安装的WSL

在这里插入图片描述
在这里插入图片描述

设置虚拟机的新用户名和密码(与之后安装Docker无关),注意!输入密码时,控制台上不会有任何反应,大胆去输入就好了。
在这里插入图片描述

1.3.2 方法二:命令行自动安装

运行如下指令启用适用于Linux的Windwos子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

在这里插入图片描述

运行如下指令启用启用“虚拟机平台”可选功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
建议此时重启一下电脑
powershell中输入指令

对于windows10版本2004版本及更新版本或者windows11,可以直接一行命令符安装

# 很多网站上都说在powershell中输入这个指令就能自动安装
wsl --install
# 实际上,我自己实验成功的是输入如下指令成功的
wsl --install -d <DistroName>
# <DistroName>是自己指定的WSL虚拟机系统,示例:
wsl --install -d Ubuntu

执行完指令后需要略微等待十几秒后才会有反应,然后安装Ubuntu也需要等待。

在这里插入图片描述

1.4 安装Docker Desktop

根据自己Windows版本选择下方对应版本,参考文档Docker Desktop for Windows

可以访问参考文档去下载,也可以直接复制下方圆括号内链接下载(本机markdown下能够正常显示,CSDN上不懂怎么就错误了)

[Docker Desktop for Windows - x86_64](https://desktop.docker.com/win/main/amd64/Docker Desktop Installer.exe?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-win-amd64&_gl=11vzs4as_gcl_auMzE1MjQxMTgzLjE3MzIwMjQxNzE._gaNDY4ODQyNjcxLjE3MzIwMjQxNzI._ga_XJWPQMJYHQ*MTczMzExMzcxNi41LjEuMTczMzExMzkzMC40Ni4wLjA.)

[Docker Desktop for Windows - Arm Beta](https://desktop.docker.com/win/main/arm64/Docker Desktop Installer.exe?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-win-arm64)

下载完之后双击运行,点击OK(如果有关于WSL2的选项建议勾选,没有的不用管)

在这里插入图片描述

安装完之后,会有个 log out 的按钮,确保你当前电脑其他文件都已经保存完毕,并自己手动关掉,因为你点击log out 之后,电脑会立刻重启。

在这里插入图片描述

1.5 运行Docker

双击图标运行,选择接受协议(Accept)。

在这里插入图片描述
在这里插入图片描述

先跳过登录,也可以跳过调查问卷。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.6 配置Docker镜像源

在这里插入图片描述
在这里插入图片描述

在里面添加一行,格式为如下,不知道如何获取自己阿里云镜像URL的,去查看配置镜像加速,也可以直接使用下方镜像。

"registry-mirrors": ["https://docker.linkedbus.com","https://docker.xuanyuan.me"]

在这里插入图片描述

二、CentOS7安装Docker

Docker官方文档

2.0配置yum进行软件安装

如果之前已经给yum换过国内镜像的可以跳过,我最终用的是方法二,方法一里提供的镜像好像也有东西下不了。

yum换源方案一

# 不会vim的也可以使用gedit,更新YUM仓库源为阿里云镜像源:
sudo vim /etc/yum.repos.d/CentOS-Base.repo

将文件中内容换成如下:

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

清理并重建缓存

sudo yum clean all
sudo yum makecache
sudo yum update

yum换源方法二

# 先安装wget
yum -y install wget
# 使用阿里云镜像
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

2.1卸载旧版本:

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

在这里插入图片描述

2.2配置Docker的yum库

首先安装对应的yum工具

yum install -y yum-utils

在这里插入图片描述

安装成功后,配置Docker的yum源

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

在这里插入图片描述

2.3安装docker

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

在这里插入图片描述

2.4查看版本

docker -v

2.5启动docker

# 设置开机自启
sudo systemctl enable --now docker
# 启动docker
systemctl start docker

2.6校验

# 需要root权限
sudo docker images

在这里插入图片描述

2.7 配置镜像加速

此处以阿里云为例,其他云也可以

2.7.1登录阿里云

https://www.aliyun.com

2.7.2开启容器镜像服务ACR

在这里插入图片描述

如果是第一次,直接开通即可,免费!

在这里插入图片描述

点击镜像工具->镜像加速器

在这里插入图片描述

按照阿里云的操作文档进行

# registry-mirrors 可以换成自己的镜像地址 当然我获取的阿里镜像似乎有问题 所以换成了下方这两个
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.linkedbus.com","https://docker.xuanyuan.me"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

在这里插入图片描述

三、Docker实战——安装MySQL

Windows上Docker安装MySQL

安装MySQL

# 默认拉取最新版本
docker pull mysql
# 拉取指定版本MySQL
docker pull mysql:5.7

在这里插入图片描述

启动MySQL

3306:3306前面的是mysql在windows里端口,后面的是mysql在docker里端口,如果windows外面安装了mysql,端口也是3306,那么要先关闭windows的mysql,不然会有端口冲突:

# 最新版本,mysql_docker_lcx是自定义的名字,-e MYSQL_ROOT_PASSWORD=123456指定MySQL密码
docker run --restart=always --privileged=true -p 3306:3306 --name mysql_docker_lcx -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_ROOT_HOST=% -d mysql
  1. docker run:这是 Docker 的命令,用于创建一个新的容器并运行一个命令。
  2. --restart=always:这个选项指定了容器的重启策略。always 表示无论容器因为什么原因退出,Docker 都会自动重启它。
  3. --privileged=true:这个选项给予容器额外的权限,使其能够访问宿主机的所有设备,并且有能力执行一些需要高级权限的操作。
  4. -p 3306:3306:这个选项将容器内部的端口映射到宿主机的端口。这里将容器的 3306 端口映射到宿主机的 3306 端口,MySQL 默认使用 3306 端口。
  5. --name mysql_docker_lcx:这个选项为容器指定一个名称,这里名称为 mysql_docker_lcx,这是自定义的名字,可以根据需要修改。
  6. -e MYSQL_ROOT_PASSWORD=123456:这个选项设置环境变量,用于指定 MySQL 的 root 用户的密码。这里设置的密码是 123456
  7. -e MYSQL_ROOT_HOST=%:这个选项同样设置环境变量,用于指定允许连接到 MySQL root 用户的主机。% 表示允许任何主机连接。
  8. -d mysql:这个选项让 Docker 在后台运行容器,-d--detach 的简写。mysql 是 Docker Hub 上的官方 MySQL 镜像名称
# 进入mysql容器内部
docker exec -it mysql_docker_lcx /bin/bash
# 启动
mysql -uroot -p
# 然后输入刚才设置的密码MYSQL_ROOT_PASSWORD=123456
123456
# 退出bash
exit

在这里插入图片描述

使用Navicat或其他工具测试MySQL连接

在这里插入图片描述

在这里插入图片描述

Linux上Docker安装MySQL

安装MySQL

# 这里 \ 是用作换行,实际情况下如果放在一行去写,就可以删掉\
docker run --name mysql_docker_lcx \
--restart=always \
--privileged=true \
-p 3306:3306  \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_ROOT_HOST=% \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql/conf \
-v /etc/localtime:/etc/localtime:ro \
-d mysql
  1. docker run:这是 Docker 的命令,用于创建并启动一个新的容器。
  2. --name mysql_docker_lcx:为容器指定一个名称,这里名称为 mysql_docker_lcx
  3. --restart=always:设置容器的重启策略为 always,意味着无论容器因为什么原因退出,Docker 都会自动重启它。
  4. --privileged=true:给予容器额外的权限,使其能够访问宿主机的所有设备,并且有能力执行一些需要高级权限的操作。
  5. -p 3306:3306:将容器内部的 3306 端口映射到宿主机的 3306 端口,这样可以通过宿主机的 3306 端口访问 MySQL 服务。
  6. -e MYSQL_ROOT_PASSWORD=123456:设置环境变量,指定 MySQL 的 root 用户密码为 123456
  7. -e MYSQL_ROOT_HOST=%:设置环境变量,指定 MySQL 的 root 用户允许从任何主机连接。
  8. -v /usr/local/mysql/log:/var/log/mysql:挂载宿主机的 /usr/local/mysql/log 目录到容器的 /var/log/mysql 目录,用于持久化 MySQL 的日志文件。
  9. -v /usr/local/mysql/data:/var/lib/mysql:挂载宿主机的 /usr/local/mysql/data 目录到容器的 /var/lib/mysql 目录,用于持久化 MySQL 的数据文件。
  10. -v /usr/local/mysql/conf:/etc/mysql/conf:挂载宿主机的 /usr/local/mysql/conf 目录到容器的 /etc/mysql/conf 目录,用于持久化 MySQL 的配置文件。
  11. -v /etc/localtime:/etc/localtime:ro:挂载宿主机的 /etc/localtime 文件到容器的 /etc/localtime 文件,用于同步宿主机的时间设置,ro 表示以只读方式挂载。
  12. -d mysql:以分离模式(后台模式)运行容器,mysql 是 Docker Hub 上的官方 MySQL 镜像名称。

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

关于springBoot+vue项目中配置SSL证书问题

前端可以通过https进行访问 1.前端在访问后端接口时&#xff0c;使用https进行访问&#xff0c;在request.js配置文件中&#xff0c;这个文件是配置axios的基本请求的&#xff0c;在基础请求地址中改为https方式 2.需要在Linux中的nginx中配置ssl证书&#xff0c;具体请参考&…

rk3568之mpp开发笔记mpp移植到开发板

前言&#xff1a; 大家好&#xff0c;今天给大家介绍的内容是rk平台的mpp编解码这块的内容&#xff0c;在rk目前看到有三套框架涉及到编解码内容&#xff1a; 1、rkmedia 2、rockit 3、mpp 这三种不同形式的编解码方式&#xff0c;后面再做详细的框架对比&#xff0c;今天我…

如何利用Java爬虫获得商品类目

在当今数字化时代&#xff0c;数据已成为企业最宝贵的资产之一。获取和分析数据的能力对于任何希望在市场上保持竞争力的企业来说都是至关重要的。对于电子商务平台和市场研究公司而言&#xff0c;获取商品类目数据尤为重要&#xff0c;因为这些数据可以帮助他们更好地理解市场…

Scratch教学作品 | 3D飞行模拟器——体验飞行的无限乐趣! ✈️

今天为大家推荐一款令人惊叹的Scratch作品——《3D飞行模拟器》&#xff01;由BamBozzle制作&#xff0c;这款游戏完全用Scratch构建&#xff0c;带你体验开放世界飞行的自由与乐趣。从起飞到降落&#xff0c;每一步都需要你的精准操作&#xff01;更棒的是&#xff0c;这款游戏…

堆排序(建堆用向上还是向下?)、topK问题

目录 1.堆排序 思考&#xff1a;建堆用向上调整建堆还是向下调整建堆&#xff1f;调堆用向上调整还是向下调整&#xff1f; 1.3总结&#xff1a;升序用大堆&#xff0c;降序用小堆。用向下调整建堆。 2.topK 2.3总结&#xff1a;要前k大&#xff0c;建小堆。要前k小&#…

Spring Boot配置文件敏感信息加密

一&#xff0c;背景 Spring Boot应用中的数据库、Redis、Nacos、MQ等的用户名、连接地址、密码在配置文件中一般都是明文存储&#xff0c;如果系统被系统攻破或者配置文件所在的目录读权限被破解&#xff0c;又或者是动态配置文件被窃取&#xff0c;内部人员或者黑客很容易通过…

学生信息管理系统(简化版)

前端部分&#xff08;vue2&#xff09; &#xff01;&#xff01;前端采用vue2框架&#xff0c;下面只写出必要的代码文件&#xff0c;想要使用需自行先创建vue项目 部分截图 下面是目录结构 下面是public文件夹里面的html文件 <!DOCTYPE html> <html lang"&q…

【密码学】分组密码的工作模式

1.电码本模式&#xff08;ECB&#xff09; 优点: 每个数据块独立加密&#xff0c;可并行加密&#xff0c;实现简单。 缺点: 相同明文会产生相同密文&#xff0c;不具备数据完整保护性。 适用于短消息的加密传输 (如一个加密密钥)。 工作流程&#xff1a;用相同的密钥分别对…

Redis探秘Sentinel(哨兵模式)

概述 Redis的高可用机制有持久化、复制、哨兵和集群。其主要的作用和解决的问题分别是&#xff1a; 持久化&#xff1a;持久化是最简单的高可用方法(有时甚至不被归为高可用的手段)&#xff0c;主要作用是数据备份&#xff0c;即将数据存储在硬盘&#xff0c;保证数据不会因进程…

mysql的索引分类和索引优化

索引介绍 索引是帮助MySQL高效获取数据的排好序的数据结构&#xff1b;存储的内容是指向表中数据的指针 mysql有多种索引&#xff0c;Btree索引&#xff0c;全文索引&#xff0c;哈希索引、空间索引。其中以BTree索引应用最为广泛 假设从0到1000中&#xff0c;猜一个数字。结…

短视频矩阵系统开发|技术源代码部署

短视频矩阵系统通过多账号运营管理、多平台视频智能分发等功能&#xff0c;助力企业实现视频引流、粉丝沉淀和转化。 短视频矩阵系统是一种创新的营销工具&#xff0c;它整合了多账号管理、视频智能分发、数据可视化等多种功能&#xff0c;为企业在短视频领域的发展提供了强大…

计算机网络研究实训室建设方案

一、概述 本方案旨在规划并实施一个先进的计算机网络研究实训室&#xff0c;旨在为学生提供一个深入学习、实践和研究网络技术的平台。实训室将集教学、实验、研究于一体&#xff0c;覆盖网络基础、网络架构、网络安全、网络管理等多个领域&#xff0c;以培养具备扎实理论基础…

【开源免费】基于SpringBoot+Vue.JS中小型医院网站(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 078 &#xff0c;文末自助获取源码 \color{red}{T078&#xff0c;文末自助获取源码} T078&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

Wireshark数据抓包分析之传输层协议(TCP协议)

根据实验环境&#xff0c;本实验的步骤如下&#xff1a; 1.在测试环境使用发包工具和Wireshark抓取TCP三次握手和四次断开的数据包。 2.详细分析TCP协议的三次握手以及四次断开。 任务描述&#xff1a;安装发包工具&#xff0c;并配置TCP客户端&#xff0c;服务端&#xff0…

【目标检测】【反无人机目标检测】使用SEB-YOLOv8s实时检测未经授权的无人机

Real-Time Detection of Unauthorized Unmanned Aerial Vehicles Using SEB-YOLOv8s 使用SEB-YOLOv8s实时检测未经授权的无人机 论文链接 0.论文摘要 摘要&#xff1a;针对无人机的实时检测&#xff0c;复杂背景下无人机小目标容易漏检、难以检测的问题。为了在降低内存和计算…

Flume基础概念

目录 作用组件构成ClientFlowAgentSourceSinkEvent 和Log4j的区别与定位事务传出流程输入到sourcesource端输入Channel 接收输入到SinkSink输出 作用 Flume可以从各种来源&#xff08;如日志文件、消息队列、网络数据、文件系统、数据库等&#xff09;收集数据&#xff0c;并将…

Unity 设计模式-观察者模式(Observer Pattern)详解

观察者模式 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了对象之间的一对多依赖关系。当一个对象的状态发生变化时&#xff0c;它的所有依赖者&#xff08;观察者&#xff09;都会收到通知并自动更新。这种模式用于事件处理系…

论文:IoU Loss for 2D/3D Object Detection

摘要&#xff1a;在2D/3D目标检测任务中&#xff0c;IoU (Intersection-over- Union)作为一种评价指标&#xff0c;被广泛用于评价不同探测器在测试阶段的性能。然而&#xff0c;在训练阶段&#xff0c;通常采用常见的距离损失(如L1或L2)作为损失函数&#xff0c;以最小化预测值…

vue.js学习(day 20)

综合案例&#xff1a;购物车 数据渲染 构建cart购物车模块 准备后端接口服务环境 请求数据存入vuex cart.js // 新建购物车模块 import axios from axios export default {namespaced: true,state () {return {// 购物车数据 [{},{}]list: []}},mutations: {updateList (…

RAG系统分类、评估方法与未来方向

分享一篇RAG综述&#xff1a;Retrieval-Augmented Generation for Large Language Models: A Survey&#xff0c;主要想了解一下RAG的评估方法&#xff0c;分享给大家。 文章目录 一、RAG分类二、评估方法三、未来方向 一、RAG分类 RAG分类&#xff1a;Navie RAG、Advanced RA…