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

news2025/1/11 1:46:14

一、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.coloradmin.cn/o/2254947.html

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

相关文章

阿里云整理(二)

阿里云整理 1. 访问网站2. 专业名词2.1 域名2.2 域名备案2.3 云解析DNS2.4 CDN2.5 WAF 1. 访问网站 用户使用浏览器访问网站大体分为几个过程&#xff1a; 用户在浏览器输入域名URL&#xff0c;例如www.baidu.com。 不过&#xff0c;浏览器并不知道为该域名提供服务的服务器具…

Robust Depth Enhancement via Polarization Prompt Fusion Tuning

paper&#xff1a;论文地址 code&#xff1a;github项目地址 今天给大家分享一篇2024CVPR上的文章&#xff0c;文章是用偏振做提示学习&#xff0c;做深度估计的。模型架构图如下 这篇博客不是讲这篇论文的内容&#xff0c;感兴趣的自己去看paper&#xff0c;主要是分享环境&…

Oceanbase离线集群部署

准备工作 两台服务器 服务器的配置参照官网要求来 服务器名配置服务器IPoceanbase116g8h192.168.10.239oceanbase216g8h192.168.10.239 这里选oceanbase1作为 obd机器 oceanbase安装包 选择社区版本的时候自己系统的安装包 ntp时间同步rpm包 联网机器下载所需的软件包 …

Ajax:回忆与节点

一点回忆 面对我的Ajax学习&#xff0c;实现前后端交互&#xff0c;最开始我采用的使用网络寻找intellij IDEA Ultimate破解方法&#xff0c;然后最终成功&#xff0c;然后按照相关教程配置java ee项目&#xff0c;然后中间又去配置了Tomcat服务器&#xff0c;然后又去学习了一…

《鸣潮》运行时电脑提示“d3dx9_41.dll丢失”是什么原因?“缺失d3dx9_41.dll文件”的解决方法和预防方案

游戏运行时文件丢失与报错解决方案&#xff1a;《鸣潮》提示“d3dx9_41.dll丢失”怎么办&#xff1f; 大家好&#xff0c;我是一名在软件开发领域有着丰富经验的从业者。在游戏爱好者的世界里&#xff0c;遇到游戏运行时提示文件丢失或损坏的情况并不少见。今天&#xff0c;我…

ARINC 标准全解析:航空电子领域多系列标准的核心内容、应用与重要意义

ARINC标准概述 ARINC标准是航空电子领域一系列重要的标准规范&#xff0c;由航空电子工程委员会&#xff08;AEEC&#xff09;编制&#xff0c;众多航空公司等参与支持。这些标准涵盖了从飞机设备安装、数据传输到航空电子设备功能等众多方面&#xff0c;确保航空电子系统的兼…

vue中pdf.js的使用,包括pdf显示,跳转指定页面,高亮关键词

目录 一、下载pdf.js 二、引入到本地的项目中 三、实现预览pdf 四、跳转到指定页面 五、利用pdf里面的find查找关键词 六、修改页面大小为实际大小 一、下载pdf.js https://github.com/mozilla/pdf.js 里面有很多的版本&#xff0c; 高版本的可能浏览器不兼容或者还要考…

【不稳定的BUG】__scrt_is_managed_app()中断

【不稳定的BUG】__scrt_is_managed_app函数中断 参考问题详细的情况临时解决方案 参考 发现出现同样问题的文章: 代码运行完所有功能&#xff0c;仍然会中断 问题详细的情况 if (!__scrt_is_managed_app())exit(main_result);这里触发了一个断点很奇怪,这中断就发生了一次,代…

Chrome控制台 网站性能优化指标一览

打开chrome-》f12/右键查看元素-》NetWrok/网络 ctrlF5 刷新网页&#xff0c;可以看到从输入url到页面资源请求并加载网页&#xff0c;用于查看资源加载&#xff0c;接口请求&#xff0c;评估网页、网站性能等&#xff0c;如下图&#xff1a; request、stransferred、resour…

第六节、S曲线加减速转动【51单片机-TB6600驱动器-步进电机教程】

摘要&#xff1a;本节介绍步进电机S曲线加减速方法&#xff0c;包含了一般形式S曲线方程的推导&#xff0c;以其适配51单片机TB6600驱动器S曲线运动数据的生成。本节所述S曲线均为标准Sigmod曲线的简称&#xff0c;与其他算法所述的7段式S曲线或者5段式S曲线相比&#xff0c;二…

【青牛科技】拥有两个独立的、高增益、内部相位补偿的双运算放大器,可适用于单电源或双电源工作——D4558

概述&#xff1a; D4558内部包括有两个独立的、高增益、内部相位补偿的双运算放大器&#xff0c;可适用于单电源或双电源工作。该电路具有电压增益高、噪声低等特点。主要应用于音频信号放大&#xff0c;有源滤波器等场合。 D4558采用DIP8、SOP8的封装形式 主要特点&#xff…

chrome使用问题记录

1. http自动跳转https问题 step1. 地址栏输入&#xff1a; chrome://net-internals/#hsts step2. 找到底部Delete domain security policies一栏&#xff0c;输入想处理的域名&#xff0c;点击delete。 注意&#xff1a;输入域名时去掉前缀http step3. 搞定了&#xff0c;再…

【深度学习】手机SIM卡托缺陷检测【附链接】

一、手机SIM卡托用途 SIM卡托是用于固定和保护SIM卡的部件&#xff0c;通过连接SIM卡与手机主板的方式&#xff0c;允许设备访问移动网络&#xff0c;用户可以通过SIM卡进行通话、发送短信和使用数据服务。 二、手机SIM卡托不良影响 SIM卡接触不良&#xff0c;造成信号中断&…

从Web3到智能合约:探索新一代数据交互模式

随着互联网技术的不断演进&#xff0c;Web3的到来标志着互联网的一个新纪元。与传统的Web2相比&#xff0c;Web3倡导去中心化、更加开放和透明的网络架构&#xff0c;而智能合约则是其中的核心技术之一。本文将介绍Web3与智能合约的概念、应用以及它们如何改变数据交互模式&…

嵌入式Linux,标准I/O探究,I/O缓冲,以及函数讲解

出于速度和效率的考虑&#xff0c;系统 I/O 调用&#xff08;即文件 I/O &#xff0c; open 、 read 、 write 等&#xff09;和标准 C 语言库 I/O 函数&#xff08;即标准 I/O 函数&#xff09;在操作磁盘文件时会对数据进行缓冲。 1. 文件 I/O 的内核缓冲 read() 和…

从单体到微服务:如何借助 Spring Cloud 实现架构转型

一、Spring Cloud简介 Spring Cloud 是一套基于 Spring 框架的微服务架构解决方案&#xff0c;它提供了一系列的工具和组件&#xff0c;帮助开发者快速构建分布式系统&#xff0c;尤其是微服务架构。 Spring Cloud 提供了诸如服务发现、配置管理、负载均衡、断路器、消息总线…

服务器数据恢复—LINUX下各文件系统删除/格式化的数据恢复可行性分析

Linux操作系统是世界上流行的操作系统之一&#xff0c;被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统&#xff08;EXT2/EXT3/EXT4/Reiserfs/Xfs&#xff0…

<future> 注释3:conditional_t<T...>,void_t<T> 用于构成特化模板,

&#xff08;14&#xff09; 模板 conditional_t<T…> &#xff0c;定义于 < xtr1common > &#xff0c; 在本 模板里也会用到&#xff1a; &#xff08;15&#xff09;void_t 用于构成特化模板&#xff0c;只要 T 可以被编译器推断为某种类型&#xff0c;void_t 就…

一文速读:高速信号的完整性测试

随着人工智能的飞速发展&#xff0c;云计算的大量应用&#xff0c;汽车的电动、网联、智能化等催生高速互连器件行业技术变革和市场巨量增长。 从形态上来讲高速互连器件包括:高速线缆&#xff0c;连接器&#xff0c;高速背板和其他带高速接口的 PCB 板。从信号特征上来讲&…

Neo4j (desktop) 使用记录

1. neo4j community 使用 第一次使用Neo4j&#xff0c;根据网上的教程安装并配置了community版本&#xff0c; 在终端使用 neo4j.bat console 可以正常打开网页端 但是&#xff0c; 使用 neo4j start , neo4j stop 时会提示 ‘neo4j’ 时非法指令&#xff0c;无法识别 查明原…