Docker 容器安装、配置与使用指南
1. 使用私有仓库
要使用私有仓库,首先需要登录到 Docker,之后就可以随意推送和拉取容器镜像。登录命令如下:
docker login
下面以从微软仓库拉取标准 Nano Server 镜像为例,命令如下:
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
若要将容器镜像推送到自己的仓库,可使用以下命令(通常在对镜像进行修改后操作):
docker push <dockerid>/<reponame>:ltsc2022
此命令中,需填入 Docker ID、仓库名称以及为容器镜像设置的标签(这里标签值为 ltsc2022)。
镜像推送成功后,会显示在 Docker Hub 的仓库中。推送到 Docker Hub 的所有标签都会显示在门户中,不过无法在 Docker Hub 内修改容器镜像,只能删除。若要修改,需先拉取镜像,进行修改后再推送。拉取镜像进行修改的命令如下:
docker pull <mydockerid>/server2022:ltsc2022
修改完成(如更新容器镜像)后,可将其推回私有仓库,以便从任何可登录 Docker 仓库的系统访问。
2. 在 Windows Server 2022 上安装容器
容器技术为开发团队提供了动态工作环境,开发者能在数分钟内启动支持应用需求的容器,许多容器镜像还针对不同编程框架进行了定制。Windows Server 2022 支持两种容器类型:
| 容器类型 | 特点 | 缺点 |
| — | — | — |
| Windows 容器 | 传统容器模型,快速、轻量、易用 | 与主机操作系统共享内核 |
| Hyper - V 容器 | 适用于需要不同内核版本或高安全性、不能共享内核的工作负载,可实现真正隔离 | 对主机服务器性能影响较大 |
2.1 安装 Windows 容器
安装步骤如下:
1. 从服务器管理器中选择“管理” -> “添加角色和功能”。
2. 在“开始之前”屏幕,点击“下一步”。
3. 在“选择安装类型”屏幕,点击“下一步”。
4. 在“选择目标服务器”屏幕,点击“下一步”。
5. 在“选择服务器角色”屏幕,点击“下一步”。
6. 在“选择功能”屏幕,选择“容器”,然后点击“下一步”。
7. 在“确认安装选择”屏幕,点击“安装”。
8. 点击“关闭”并重启服务器。
2.2 安装 Hyper - V 容器
安装 Hyper - V 容器需同时安装 Hyper - V 角色,步骤如下:
1. 从服务器管理器中选择“管理” -> “添加角色和功能”。
2. 在“开始之前”屏幕,点击“下一步”。
3. 在“选择安装类型”屏幕,点击“下一步”。
4. 在“选择目标服务器”屏幕,点击“下一步”。
5. 在“选择服务器角色”屏幕,选择“Hyper - V”,点击“添加功能”,然后点击“下一步”。
6. 在“选择功能”屏幕,选择“容器”,然后点击“下一步”。
7. 在“Hyper - V”屏幕,点击“下一步”。
8. 在“创建虚拟交换机”屏幕,选择网络适配器,然后点击“下一步”。
9. 在“虚拟机迁移”屏幕,点击“下一步”。
10. 在“默认存储”屏幕,点击“下一步”。
11. 在“确认安装选择”屏幕,点击“安装”。
12. 安装完成后,点击“关闭”并重启服务器。
2.3 安装 Docker
安装完容器功能(可能还包括 Hyper - V 角色)后,需要安装 Docker 引擎,步骤如下:
1. 右键点击“开始”菜单,选择“Windows PowerShell(管理员)”打开 PowerShell。
2. 安装 Microsoft 包提供程序:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
- 安装最新版本的 Docker:
Install-Package -Name docker -ProviderName DockerMsftProvider
- 安装完成后,重启服务器,可通过图形用户界面操作,也可在 PowerShell 中输入以下命令:
Restart-Computer -Force
2.4 测试容器安装
2.4.1 测试 Windows 容器
可通过下载并运行容器镜像来测试 Windows 容器安装是否正确,以“Hello world”示例镜像为例:
docker run hello-world
若只想下载镜像以便后续使用,可使用以下命令:
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
需注意,容器镜像的内核版本必须与容器主机的内核版本匹配,否则会报错。
2.4.2 测试 Hyper - V 容器
测试 Hyper - V 容器与 Windows 容器类似,但需添加
--isolation=hyperv
参数,命令如下:
docker run --isolation=hyperv mcr.microsoft.com/windows/nanoserver:1909
由于 Hyper - V 容器不共享内核,即使使用较旧内核版本的镜像也能运行。
3. 在 Windows Server 2022 上配置 Docker 和容器
安装容器相对简单,在企业环境中,还需对容器进行配置以实现实际业务价值。
3.1 使用 Dockerfile
Dockerfile 用于指定容器的构建方式,它确定使用的容器镜像并包含要运行的命令,对容器镜像所做的更改将作为一层保存到原始镜像之上。
创建 Dockerfile 时,在 Windows 上需确保无文件扩展名,可在保存时将文件名为 “dockerfile” 并将保存类型改为“所有文件”。Dockerfile 中的常用指令如下:
| 指令名称 | 描述 |
| — | — |
| FROM | 指定构建镜像所基于的容器镜像 |
| LABEL | 用于在 Docker 中组织对象,以键值对形式存储 |
| RUN | 在操作系统内运行命令,如 PowerShell、命令提示符等 |
| CMD | 设置容器创建和部署时默认运行的命令 |
| COPY | 将文件或文件夹从指定源复制到指定目标 |
| ADD | 与 COPY 类似,但可从远程主机复制文件 |
| WORKDIR | 设置工作目录,可能用于 RUN 和 CMD 指令 |
以下是一个简单的 Dockerfile 示例,用于拉取 Windows Server Core 镜像并安装 Internet Information Services (IIS),同时创建一个“Hello World”页面:
# Sets the base container image to Windows Server 2022 Core
FROM mcr.microsoft.com/windows/servercore:ltsc2022
# Metadata indicating an image maintainer.
LABEL "version" = "1.0" "Description" = "Core with IIS"
# Use dism.exe to install IIS
RUN dism.exe /online /enable-feature /all / featurename:iis-webserver /NoRestart
# Creates the Hello World file and adds our message to it.
RUN echo "Hello World – I was created from a Dockerfile!" > c:\inetpub\wwwroot\index.html
创建好 Dockerfile 后,在 PowerShell 中导航到保存 Dockerfile 的目录,使用以下命令创建容器镜像:
docker build -t coreiis .
其中,“.” 表示 Dockerfile 在当前目录,也可使用完整路径。
3.2 为容器和其他对象应用自定义元数据
在容器领域,元数据通常指“标签”,可用于组织 Docker 中的各种对象,如镜像、容器、网络和卷等。标签是键值对,键用于分组对象,值为具体信息。
3.2.1 创建标签
- 单个标签示例:
LABEL "Project" = "NewApp"
- 多个标签示例:
LABEL "Project" = "NewApp" "Author" = "John Doe" "version" = "1.0"
为提高可读性,可使用斜杠分隔:
LABEL "Project" = "NewApp" \
"Author" = "John Doe" \
"version" = "1.0"
3.2.2 查看标签
若要查看容器镜像的标签,可使用以下命令:
docker inspect <containername>
3.3 配置容器
3.3.1 自动启动容器
对于运行重要服务的容器,可使用重启策略确保容器在退出后自动重启。使用重启策略前,需手动启动容器并确保其运行至少 10 秒,之后 Docker 才能进行监控。可使用
--restart
标志指定重启策略,命令如下:
docker run -dit --restart <policy> coreiis
通过以上步骤,你可以在 Windows Server 2022 上完成容器的安装、配置和使用,充分发挥容器技术的优势。
3.4 配置 Docker 守护进程
可以使用
daemon.json
文件来配置 Docker 守护进程。
daemon.json
文件通常位于
/etc/docker
目录下,如果该文件不存在,可以手动创建。以下是一个简单的
daemon.json
文件示例:
{
"registry-mirrors": ["https://your-registry-mirror-url"],
"insecure-registries": ["your-insecure-registry-url"]
}
-
registry-mirrors:用于配置 Docker 镜像加速地址,可提高镜像拉取速度。 -
insecure-registries:用于配置不安全的 Docker 镜像仓库地址,当使用自签名证书的仓库时需要配置。
配置完成后,需要重启 Docker 服务使配置生效,可在 PowerShell 中使用以下命令:
Restart-Service docker
3.5 容器配置流程图
graph LR
A[开始] --> B[使用 Dockerfile 构建镜像]
B --> C[应用自定义元数据(标签)]
C --> D[配置容器(如自动启动)]
D --> E[配置 Docker 守护进程(daemon.json)]
E --> F[重启 Docker 服务]
F --> G[完成配置]
4. 总结与注意事项
4.1 容器类型选择
- Windows 容器 :适合对性能要求较高、对内核版本一致性要求较高的场景,因为它与主机共享内核,启动速度快、资源占用少。
- Hyper - V 容器 :适合对安全性要求较高、需要不同内核版本的场景,虽然性能有一定损耗,但能提供更好的隔离性。
4.2 镜像使用注意事项
- 确保容器镜像的内核版本与容器主机的内核版本匹配,否则会导致容器无法正常运行。
- 在使用私有仓库时,要注意登录信息的安全,避免泄露。
4.3 配置相关注意事项
- 创建 Dockerfile 时,要注意文件的编码格式和换行符,避免出现指令执行错误。
-
在配置 Docker 守护进程时,要确保
daemon.json文件的语法正确,否则会导致 Docker 服务无法启动。
4.4 容器配置要点总结表
| 配置项目 | 要点说明 |
|---|---|
| Dockerfile | 指定基础镜像、运行命令、添加元数据等,构建自定义容器镜像 |
| 自定义元数据(标签) | 用于组织和管理 Docker 中的各种对象,方便查找和筛选 |
| 容器自动启动 | 使用重启策略确保重要容器在退出后自动重启 |
| Docker 守护进程配置 |
使用
daemon.json
文件配置镜像加速、不安全仓库等
|
通过以上对 Docker 容器在 Windows Server 2022 上的安装、配置和使用的详细介绍,你可以根据实际需求灵活运用这些技术,提高开发和运维效率,为企业的业务发展提供有力支持。同时,在实际操作过程中,要严格遵循相关的注意事项,确保系统的稳定性和安全性。
超级会员免费看
1956

被折叠的 条评论
为什么被折叠?



