[玩转系统] 在 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
使用此方法,启动服务器管理器并访问添加角色和功能向导。
选择基于角色功能,然后继续并选择您的服务器作为目标。
在此页面上,只需单击下一步:
在功能选项卡上,选择容器功能。
安装完成后,您将看到以下内容:
现在,使用提升的权限访问 PowerShell 并使用以下命令安装 DockerMsftProvider 和 Dokcer
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
示例输出:
安装后,重新启动系统。重新启动后,该服务将可用,如下所示:
方法 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
示例输出:
安装后,重新启动系统。
Restart-Computer -Force
系统启动后,验证您的安装:
docker version
示例输出:
如何在 Windows Server 2022 上使用 Docker
安装 Docker 引擎后,您现在可以根据需要构建/拉取和使用容器映像。以下是您可以使用 Docker 执行的一些活动。
A。拉取 Docker 镜像
要拉取 docker 映像,请使用具有以下语法的命令:
docker pull [image-name]
例如:
docker pull mcr.microsoft.com/windows/servercore:ltsc2022
拉取后,查看可用的图像:
docker images
示例输出:
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
示例输出:
查看图片:
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!'"
示例输出:
您还可以在容器中启动交互式会话:
docker run -it mcr.microsoft.com/windows/servercore:ltsc2022 powershell
示例输出:
要退出会话,请使用:
exit
d.公开 Docker 服务
为了从容器外部访问 Docker 服务,需要公开它们。运行容器时,需要使用 -p 标志来公开容器端口。
例如,运行 IIS Web 服务器容器(使用我们之前构建的映像)并公开服务:
docker run -t -d -p 8080:80 --name webserver iis-webserver cmd
检查容器的状态:
docker ps
示例输出:
添加测试文件:
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 访问该服务
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
示例输出:
您现在可以使用 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
示例输出:
如何在 Docker 上管理网络
Docker 为容器之间以及与外界通信提供了多种网络选项。以下是在 Docker 上管理网络的基本步骤:
您可以查看可用的网络:
docker network ls
获取给定网络的详细信息。例如“nat”
docker network inspect nat
示例输出:
“nat”是分配给容器的默认网络。您可以使用 NAT 驱动程序通过具有以下语法的命令创建另一个网络:
docker network create my-network -d "nat"
示例输出:
创建网络后,您可以将容器连接到该网络。例如:
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"
示例输出:
要删除网络,请使用:
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
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag