当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

作者:精品下载站 日期:2024-12-14 20:46:27 浏览:13 分类:玩电脑

在 Windows Server 2022 上使用 Docker 和 Docker Compose


容器已经存在相当长一段时间了,并且已经成为一种越来越流行的部署和管理应用程序的方式。它们允许开发人员将应用程序及其依赖项打包到单个可移植映像中,该映像可以在从开发到生产的不同环境中一致运行。

最初,容器主要与 Linux 操作系统相关,但近年来对 Windows 容器的支持稳步增长。随着Windows Server 2016的发布,微软引入了对在Windows上运行的Docker容器的支持,使开发人员能够利用Windows平台上容器化的优势。除了 Docker 支持之外,微软还为 Windows 提供了自己的容器运行时,称为 Windows Container(以前称为 Windows Server Containers)。 Windows 容器既支持传统的 Windows 应用程序,也支持基于 .NET Core 的现代应用程序。

微软还采用了开源容器编排系统 Kubernetes,并提供在 Windows Server 上运行 Kubernetes 的支持。这使得开发人员可以在 Windows 平台上使用 Kubernetes 部署和管理容器,从而提供一致的方式来管理 Linux 和 Windows 工作负载。

今天,我们将学习如何在 Windows Server 2022 上使用 Docker 和 Docker Compose。

Docker 是一个用于构建、发布和运行容器应用程序的开源平台。它提供了一种创建和管理容器的方法,容器是轻量级的、独立的、可执行的软件包,可以在任何安装了 Docker 的机器上运行,无论底层操作系统或硬件如何。

Docker 很重要,因为它有助于简化构建、部署和扩展应用程序的过程。借助 Docker,开发人员可以以一致且可移植的方式打包他们的应用程序,从而更轻松地在开发、测试和生产环境之间移动它们。 Docker 还允许快速部署应用程序,这有助于加快开发周期并缩短上市时间。它还隔离应用程序及其依赖关系,这有助于提高安全性并降低同一系统上运行的不同应用程序之间发生冲突的风险。

在 Windows Server 2022 上安装 Docker

在使用Docker之前,我们需要将其安装在Windows Server 2022系统上。这可以使用两种方法来完成:

  • 使用图形用户界面
  • 使用PowerShell

方法 1:使用 GUI 在 Windows Server 2022 上安装 Docker

使用此方法,启动服务器管理器并访问添加角色和功能向导

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

选择基于角色功能,然后继续并选择您的服务器作为目标。

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

在此页面上,只需单击下一步:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

在功能选项卡上,选择容器功能。

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

安装完成后,您将看到以下内容:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

现在,使用提升的权限访问 PowerShell 并使用以下命令安装 DockerMsftProvider 和 Dokcer

 Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
 Install-Package -Name docker -ProviderName DockerMsftProvider

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

安装后,重新启动系统。重新启动后,该服务将可用,如下所示:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

方法 2:使用 PowerShell 在 Windows Server 2022 上安装 Docker

您还可以在 Windows Server 2022 PowerShell 上完全安装 Docker。使用管理员权限启动 PowerShell 并执行以下命令:

首先,启用容器功能:

Enable-WindowsOptionalFeature -Online -FeatureName Containers 

现在安装docker:

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force 
Install-Package -Name docker -ProviderName DockerMsftProvider 

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

安装后,重新启动系统。

Restart-Computer -Force 

系统启动后,验证您的安装:

docker version 

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

如何在 Windows Server 2022 上使用 Docker

安装 Docker 引擎后,您现在可以根据需要构建/拉取和使用容器映像。以下是您可以使用 Docker 执行的一些活动。

A。拉取 Docker 镜像

要拉取 docker 映像,请使用具有以下语法的命令:

docker pull [image-name]

例如:

docker pull mcr.microsoft.com/windows/servercore:ltsc2022 

拉取后,查看可用的图像:

docker images

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

b.构建 Docker 镜像

您还可以从 DockerFile 构建 Docker 映像。使用容器所需的变量创建一个 Docker 文件。

为 docker 文件创建专用目录。

mkdir docker-file 
cd docker-file 

为 IIS Web 服务器创建示例 DockerFile。

$str_file = @"
FROM mcr.microsoft.com/windows/servercore:ltsc2022
MAINTAINER computingforgeeks.com

RUN dism.exe /online /enable-feature /all /featurename:iis-webserver /NoRestart
RUN echo Dockerfile test example > C:\inetpub\wwwroot\index.html

EXPOSE 80
CMD [ "cmd" ]
"@ 

将这些值导出到文件:

$str_file | Out-File Dockerfile -Encoding Default 

现在构建一个 docker 镜像:

docker build . -t iis-webserver:latest

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

查看图片:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

C。运行 Docker 容器

您可以使用构建/拉取的图像来旋转 Docker 容器。如果镜像还没有被拉取,docker会在旋转容器之前找到它并拉取它。

对于此演示,我们将从拉取的映像中运行服务器核心容器,并在容器内回显一些语句:

docker run mcr.microsoft.com/windows/servercore:ltsc2022 powershell -c "echo 'Voila! We have a Docker Container running on Windows server 2022!'"

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

您还可以在容器中启动交互式会话:

docker run -it mcr.microsoft.com/windows/servercore:ltsc2022 powershell

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

要退出会话,请使用:

exit

d.公开 Docker 服务

为了从容器外部访问 Docker 服务,需要公开它们。运行容器时,需要使用 -p 标志来公开容器端口。

例如,运行 IIS Web 服务器容器(使用我们之前构建的映像)并公开服务:

docker run -t -d -p 8080:80 --name webserver iis-webserver cmd

检查容器的状态:

docker ps

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

添加测试文件:

 docker exec webserver powershell -c "Write-Output 'This is a test IIS container' | Out-File -Encoding default C:\inetpub\wwwroot\index.html"

这将运行容器并将端口 80 公开到本地网络上的端口 8080。然后可以使用 URL http://IP_Address:8080 访问该服务

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

e.使用持久存储运行 Docker 容器

为了将数据持久保存在 Docker 容器中,我们使用持久存储。这可以是专用目录或映射到给定路径的 docker 卷。

创建持久存储的最简单方法是创建路径。说:

mkdir C:\docker-container-storage 

创建路径后,我们可以测试是否能够写入它:

Write-Output 'Docker Persistent Storage Test' | Out-File -Encoding default C:\docker-container-storage\index.html

现在我们可以使用 -v 标志来旋转一个使用创建的存储的容器并映射路径:

docker run -it -v C:\docker-container-storage:C:\disk01 mcr.microsoft.com/windows/servercore:ltsc2022 

这会将容器中的内容 C:\disk01 映射到主机上的C:\docker-container-storage

在 Windows Server 2022 上安装 Docker Compose

安装 Docker Engine 后,您现在可以安装 Docker Compose。这是一个允许您定义和运行多容器 Docker 应用程序的工具。它可以描述将一组 Docker 容器作为单个应用程序运行所需的服务、网络和卷。

要安装 Docker Compose,请使用管理员权限启动 PowerShell 并执行命令。但首先检查版本页面并将 v2.18.0 替换为版本号。

Invoke-WebRequest "https://github.com/docker/compose/releases/download/v2.18.0/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\docker\docker-compose.exe 

验证安装:

docker-compose --version 

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

您现在可以使用 Docker Compose 来运行容器。这涉及为容器创建 docker-compose YAML 文件。

例如,导出变量:

$str_file = @"
version: '3'
services:
  web:
    image: iis-webserver
    container_name: iis
    ports:
      - "80:80"
"@ 

将变量放入文件中:

$str_file | Out-File docker-compose.yml -Encoding Default 

现在使用以下命令运行容器:

docker-compose up -d

查看容器的状态:

docker-compose ps

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

如何在 Docker 上管理网络

Docker 为容器之间以及与外界通信提供了多种网络选项。以下是在 Docker 上管理网络的基本步骤:

您可以查看可用的网络:

docker network ls 

获取给定网络的详细信息。例如“nat

docker network inspect nat 

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

nat”是分配给容器的默认网络。您可以使用 NAT 驱动程序通过具有以下语法的命令创建另一个网络:

docker network create my-network -d "nat"

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

创建网络后,您可以将容器连接到该网络。例如:

docker network connect [network name] [container name]

例如:

docker network connect my-network  webserver

要运行新容器并连接到网络,请使用:

docker run --network my-network mcr.microsoft.com/windows/servercore:ltsc2022 powershell -c "ipconfig" 

示例输出:

[玩转系统] 在 Windows Server 2022 上使用 Docker 和 Docker Compose

要删除网络,请使用:

docker network rm [network name] 

要删除所有未附加容器的网络:

docker network prune 

判决

今天我们学习了如何在 Windows Server 2022 上使用 Docker 和 Docker Compose。这可以用于快速部署应用程序,有助于加快开发周期并提高上市时间。我希望这是有用的。

查看更多:

  • 在 Debian 上安装 Docker Swarm 集群
  • 如何在 Linux 系统上安装 Docker CE
  • 如何在 Linux 上安装 Docker Compose
  • 在 Docker/Podman 容器中运行 Microsoft SQL Server 2022

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯