0


【Docker】Windows11操作系统下安装、使用Docker保姆级教程

【Docker】Windows11操作系统下安装、使用Docker保姆级教程

大家好 我是寸铁👊
总结了一篇【Docker】Windows11操作系统下安装、使用Docker保姆级教程的文章✨
喜欢的小伙伴可以点点关注 💝

前言

什么是 Docker?

Docker 是一个开源平台,支持开发人员

构建

部署

运行

更新

管理

容器,这些容器是标准化的可执行组件,结合了应用源代码以及在任何环境中运行该代码所需的操作系统 (OS) 库和依赖项。

容器简化了

分布式应用的部署和交付

过程。 随着组织转向

云原生

开发和混合多云环境,它们已变得越来越流行。 开发人员可以直接使用 Linux 和其他操作系统中内置的功能,在没有 Docker 的情况下创建容器。 但 Docker 使容器化更加迅速、简便和安全。 截至本文撰写之时,Docker 报告称,已有超过 1300 万名开发人员在使用该平台(链接位于 ibm.com 外部)。

Docker 也指 Docker, Inc.(链接位于 ibm.com 外部),即销售 Docker 商业版本的企业,还可以是 Docker, Inc. 和许多其他组织和个人开展的 Docker 开源项目。


容器的工作原理

容器是通过 Linux 内核中内置的过程

隔离和虚拟化功能

来实现的。 控制组 (

Cgroups)

用于为各进程分配资源

名称空间(namespace)

用于限制进程访问或对其他资源或系统区域的可视性 ,这些功能支持多个应用组件共享主机操作系统的

单个实例

的资源,这与系统管理程序支持多台虚拟机 (

VM

) 共享单个硬件服务器的

 CPU

内存

和其他资源的方式大致相同。


容器的架构

在这里插入图片描述

Docker 包括三个基本概念:

  • 镜像(Image)
    

    :Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

  • 容器(Container)
    

    :镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的

    类和实例
    

    一样,镜像是

    静态的定义
    

    ,容器是镜像

    运行时的实体
    

    。容器可以被

    创建
    

    启动
    

    停止
    

    删除
    

    暂停
    

    等。

  • 仓库(Repository)
    

    :仓库可看成一个代码控制中心,用来保存

    镜像
    


Docker的优势

因此,容器技术可提供虚拟机的所有功能和优势,包括应用隔离、经济高效的可扩展性和可处置性,以及其他重要的优势:

  • 更轻巧:与虚拟机不同,容器不会承载整个操作系统实例和系统管理程序的有效负载。 它们仅包括执行代码所需的操作系统进程和依赖项。 容器大小以兆字节为单位(某些虚拟机则是以千兆字节为单位)来衡量,因此它们可以更好地利用硬件容量,启动速度也更快
  • 提高了开发人员的工作效率:容器化应用可以“一次编写,随处运行”。 与虚拟机相比,容器的部署、配置和重启过程更迅速且更简单。 这使得容器非常适合在持续集成和持续交付 (CI/CD) 管道中使用,并且更适合采取敏捷DevOps 实践的开发团队。
  • 提高了资源利用率:开发人员使用容器在硬件上运行的应用副本数量是使用虚拟机的数倍。 这可以减少云支出

为何使用 Docker?

Docker 如今非常受欢迎,甚至可以与“容器”一词互换使用。 而在 Docker 于 2013 年面世之前,第一批与容器相关的技术早已存在数年,甚至数十年(链接位于 IBM 外部)。

最值得注意的是,2008 年,Linux 内核中实现了 LinuXContainers (LXC),LXC 完全支持单个 Linux 实例的虚拟化。 虽然目前仍在使用

 LXC

,但也提供了使用 Linux 内核的新技术。 现代的开源 Linux 操作系统 Ubuntu 也提供了此功能。

Docker 支持开发人员使用简单的命令访问这些本机容器化功能,并通过节省工作量的应用程序编程接口 (API) 自动执行。 与 LXC 相比,Docker 提供了以下功能:

  • 增强的无缝容器可移植性:虽然 LXC 容器通常引用特定于机器的配置,但 Docker 容器无需修改即可在任何桌面、数据中心和云环境中运行。
  • 更轻巧且更细粒度的更新:通过使用 LXC,可以在单个容器中组合多个进程。 这样就可以构建持续运行的应用,即使为了更新或修复而关闭某个部分也不例外。
  • 自动化容器创建:Docker 可以基于应用源代码自动构建容器。
  • 容器版本控制:Docker 可以跟踪容器映像的版本,回滚到先前的版本,以及跟踪版本的构建者和构建方式。 它甚至可以只上传现有版本和新版本之间的增量
  • 容器复用:现有容器可用作基本映像(本质上类似于用于构建新容器的模板)。
  • 共享容器库:开发人员可以访问包含数千个用户贡献容器的开源注册表

如今,Docker 容器化也适用于 Microsoft Windows 和 Apple MacOS。 开发人员可以在任何操作系统上运行 Docker 容器,大多数领先的云提供商(包括 Amazon Web Services (AWS)、Microsoft Azure 和 IBM Cloud)都提供了一些专用服务,这些服务可帮助开发人员构建、部署和运行使用 Docker 进行容器化的应用。


***在初步认识了解了

Docker

后,下面正式进入

Docker

使用环节!***

一、进入Docker官网

首先先到Docker官网下载最新官方Docker for Windows链接:Docker下载

在这里插入图片描述


二、启动Microsoft Hyper-V

在电脑上打开“控制面板”->“程序”-> “启动或关闭Windows功能”。

在这里插入图片描述

  • 勾选Hype-V功能

在这里插入图片描述

  • 并勾选如下内容:

在这里插入图片描述


三、安装Docker

在Windows上安装Docker桌面版

  • 双击程序,如下:在这里插入图片描述

  • 点击OK,确定安装WSL

在这里插入图片描述

  • 等待安装完毕!

在这里插入图片描述


  • 安装完毕后,点击Close and restart

在这里插入图片描述


  • 电脑重启后,点击Docker程序会看到如下界面

在这里插入图片描述


  • 默认勾选,点击Finish即可完成在这里插入图片描述
  • 等待启动Docker引擎

在这里插入图片描述

  • 报错如下:

在这里插入图片描述

  • 重新更新一下wsl版本,如下命令

在这里插入图片描述

在这里插入图片描述

  • 报错如下:点击restart重启即可。在这里插入图片描述
  • 现在程序正常启动并稳定啦

在这里插入图片描述


四、玩转Docker

  • 命令行输入如下命令
docker--version

在这里插入图片描述

至此就可以在windows上开始Docker之路啦!

五、运行Hello-world

  • 运行Hello-world,使用如下命令:
docker pull hello-world

在这里插入图片描述

  • 查看是否拉取成功?

在这里插入图片描述

显示Hello-world镜像确实存在!

  • 查看可视化容器镜像,显示如下:

在这里插入图片描述

至此拉取Hello-world成功!


六、配置阿里云镜像加速

  • 刚才的pull操作比较慢,接下来需要配置一下镜像代理,便于更快速的拉取资源!
  • 登录阿里云官网:镜像加速器(需要账号登录)

在这里插入图片描述

地址是免费的,每个人都有。


  • 将如下代码添加到Docker的设置中
"registry-mirrors":["https://inhj05a1.mirror.aliyuncs.com"]
  • 进入设置的页面

在这里插入图片描述


  • 添加如下:点击Apply andr esatrt 运用并重启即可

在这里插入图片描述

至此配置阿里云镜像加速完毕!


七、容器常用命令

查看版本

docker--version

在这里插入图片描述


获取镜像

如果我们本地没有

 mysql

镜像,我们可以使用

docker pull

命令来载入

 mysql

镜像:

在这里插入图片描述

启动容器

以下命令使用

mysql

镜像启动一个容器,参数为以命令行模式进入该容器:

docker run -it mysql /bin/bash

输入

exit

容器停止运行

所以,更常用的是这种后台启动的方式:

docker run -itd mysql /bin/bash

注意每

run

一个就创建一个容器!

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • mysql: mysql镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。 要退出终端,直接输入 exit

在这里插入图片描述


查看容器

常用命令如下:

dockerps-a

在这里插入图片描述

dockerps-q

在这里插入图片描述

ps

:列出正在运行的容器。

参数说明:

  • -a:列出所有容器(包括停止的容器)。
  • -q:仅显示容器ID。
  • -f:根据过滤器条件过滤输出。
  • "name=CONTAINER_NAME":过滤器条件,匹配指定名称的容器。

停止容器

docker stop 容器ID

在这里插入图片描述


重启容器

docker restart 容器ID

在这里插入图片描述

在这里插入图片描述

发现容器的状态为

Up

代表启动!


查找进程号(PID)

在一些场景中需要,通过容器ID来查找背后的

进程号

(PID),操作如下:

  • 先查找容器ID
dockerps-a

在这里插入图片描述

  • 传入容器ID查找PID

方式二如下:

docker inspect -f'{{.State.Pid}}' 容器ID

在这里插入图片描述

方式三如下:

docker container top  容器ID

在这里插入图片描述

这里显示pid 需要特别说明一下,容器的

pid

是932 ,

PPID 

是它的

父进程

。下面的显示的内容都是它的子进程。


linux

下还提供

ps

命令来提供查询

ps aux |grep 容器ID

运行结果如下:

在这里插入图片描述

补充
  • 如何通过PID来启停一个容器?

在Windows中无法通过

PID

来启停一个容器。
只能通过

docker

命令控制容器的

ID

来启停容器。

但是,linux可以使用

sudo

命令

kill

掉容器的

pid

从而控制容器的停止。
如下,容器被关闭,处于

not running

状态。

在这里插入图片描述


看到这里的小伙伴,恭喜你又掌握了一个技能👊
希望大家能取得胜利,坚持就是胜利💪
我是寸铁!我们下期再见💕

往期好文💕

保姆级教程

【保姆级教程】Windows11下go-zero的etcd安装与初步使用

【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

【Go-Zero】手把手带你在goland中创建api文件并设置高亮


报错解决

【Go-Zero】Error: user.api 27:9 syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘ 报错解决方案及api路由注意事项

【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案

【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):报错解决方案

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案

【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案

【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘报错解决方案

【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案


Go面试向

【Go面试向】defer与time.sleep初探

【Go面试向】defer与return的执行顺序初探

【Go面试向】Go程序的执行顺序

【Go面试向】rune和byte类型的认识与使用

【Go面试向】实现map稳定的有序遍历的方式

标签: docker java 容器

本文转载自: https://blog.csdn.net/joeyoj/article/details/136427362
版权归原作者 寸 铁 所有, 如有侵权,请联系我们删除。

“【Docker】Windows11操作系统下安装、使用Docker保姆级教程”的评论:

还没有评论