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

【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","https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://docker.unsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://docker.chenby.cn","http://mirror.azure.cn","https://dockerpull.org","https://dockerhub.icu","https://hub.rat.dev","http://hub-mirror.c.163.com","http://hub-mirror.c.163.com","https://registry.docker-cn.com"]

在这里插入图片描述

1.7 docker校验

打开powershell,终端中输入如下指令

# 显示版本信息
docker --version
# 显示当前docker本地镜像
docker images
# 运行第一个helloworld镜像,测试使用,可以不执行
docker run hello-world
# 显示运行中的容器
docker ps

在这里插入图片描述

二、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","https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://docker.unsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://docker.chenby.cn","http://mirror.azure.cn","https://dockerpull.org","https://dockerhub.icu","https://hub.rat.dev","http://hub-mirror.c.163.com","http://hub-mirror.c.163.com","https://registry.docker-cn.com"]
}
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.mrgr.cn/news/79564.html

相关文章:

  • 016 在路由器上配置 DHCP
  • CSS的2D和3D动画效果
  • Leetcode - 145双周赛
  • qt QCommandLineParser详解
  • JS的async 和 await
  • D95【python 接口自动化学习】- pytest进阶之fixture用法
  • 黑马redis
  • frida(objection)中x.ts到x.py封装路径
  • 复现论文:PromptTA: Prompt-driven Text Adapter for Source-freeDomain Generalization
  • ubuntu防火墙设置(四)——iptables语法与防火墙基础配置
  • 树莓派4B使用opencv读取摄像头配置指南
  • 【计网笔记】网络参考模型
  • MongoDB-BSON 协议与类型
  • 【数据库】关系代数和SQL语句
  • [C++]C风格数组之指针数组、数组指针、指向数组的指针、指向数组第一个元素的地址的指针的异同和联系
  • Redis(一)
  • openjdk17 jvm加载class文件,解析字段和方法,C++源码展示
  • CUDA编程 | 5.3减少全局内存访问
  • HCIA-Access V2.5_2_2网络通信基础_TCP/IP模型结构
  • linux 系统常用指令
  • react hooks讲解--通俗易懂版
  • log4j漏洞复现--vulhub
  • 基于Pyhton的人脸识别(Python 3.12+face_recognition库)
  • 自然三次样条插值推导笔记
  • Linux:动静态库
  • 图神经网络学习笔记-点云数据处理(专题七)