- Docker 教程
- Docker - 首页
- Docker - 概述
- Docker - 在 Linux 上安装
- Docker - 安装
- Docker - Hub
- Docker - 镜像
- Docker - 容器
- Docker - 仓库
- Docker - Compose
- Docker - 使用容器
- Docker - 架构
- Docker - 层
- Docker - 容器 & 主机
- Docker - 配置
- Docker - 容器 & Shell
- Docker - Dockerfile
- Docker - 构建文件
- Docker - 公共仓库
- Docker - 管理端口
- Docker - Web 服务器
- Docker - 命令
- Docker - 容器链接
- Docker - 数据存储
- Docker - 卷
- Docker - 网络
- Docker - 安全
- Docker - 工具箱
- Docker - 云
- Docker - 构建云
- Docker - 日志
- Docker - 持续集成
- Docker - Kubernetes 架构
- Docker - Kubernetes 的工作原理
- Docker - 生成式 AI
- Docker - 托管
- Docker - 最佳实践
- Docker 设置服务
- Docker - 设置 Node.js
- Docker - 设置 MongoDB
- Docker - 设置 NGINX
- Docker - 设置 ASP.Net
- Docker - 设置 MySQL
- Docker - 设置 Go
- Docker - 设置 Rust
- Docker - 设置 Apache
- Docker - 设置 MariaDB
- Docker - 设置 Jupyter
- Docker - 配置 Portainer
- Docker - 设置 Rstudio
- Docker - 设置 Plex
- Docker 设置 - Flame
- Docker 设置 - PostgreSql
- Docker 设置 - Mosquitto
- Docker 设置 - Grafana
- Docker 设置 - Nextcloud
- Docker 设置 - Pawns
- Docker 设置 - Ubuntu
- Docker 设置 - RabbitMQ
- Docker - 设置 Python
- Docker - 设置 Java
- Docker - 设置 Redis
- Docker - 设置 Alpine
- Docker - 设置 BusyBox
- Docker 设置 - Traefik
- Docker 设置 - WordPress
- Docker 有用资源
- Docker - 快速指南
- Docker - 有用资源
- Docker - 讨论
Docker - 配置 Portainer
Portainer 是一款轻量级的管理 UI,可以轻松管理 Docker 环境。它提供了一个直观的界面,用户可以通过它轻松部署、管理和调试容器化应用程序。使用 Portainer,您可以监控 Docker 设置,并从集中位置管理容器、镜像、卷和网络。
使用 Docker 运行 Portainer 不仅简化了设置,而且确保它受益于 Docker 的可移植性、可扩展性和易用性。通过将 Portainer 放入 Docker 容器中,您可以为自己创建一个独立的环境,该环境易于部署和维护,非常适合管理您的 Docker 基础设施。
Docker 化 Portainer 的先决条件
在 Docker 化 Portainer 之前,请确保已满足以下先决条件:
- 安装 Docker - 确保您的系统中已安装 Docker。您可以从Docker 官方网站下载并安装 Docker。
- Docker 基础知识 - 了解 Docker 的基本概念,例如镜像、容器和 Dockerfile 的概述。
- 访问终端 - 您必须打开一个命令行终端来执行 Docker 命令。
- 互联网连接 - 在本文中,我们将使用 Docker Hub 上提供的 Portainer 官方镜像。需要互联网连接,以便 Docker 可以拉取此镜像。
- Docker Hub 帐户 - 对于希望将自定义镜像推送到注册表的用户,另一个推荐的资源是 Docker Hub 帐户。
在完成所有这些先决条件后,您现在就可以开始设置您的 Portainer 项目并在此处将其 Docker 化。
设置 Portainer 项目
让我们创建一个基本项目结构。此设置将帮助我们组织文件和配置,并且可以更轻松地管理和版本控制 Portainer 部署。
步骤 1:创建项目目录
让我们为我们的 Portainer 项目创建一个专用目录。此目录将包含所有必要的文件,例如 Dockerfile 和任何其他配置文件。
$ mkdir portainer-project $ cd portainer-project
步骤 2:初始化版本控制和 Docker
接下来,您可以在项目目录和 Docker 文件中初始化一个 Git 存储库。
$ git init $ docker init
步骤 3:创建配置文件
根据您的需要,您还可以创建一个配置文件来自定义 Portainer 部署。例如,您可以添加环境变量或指定一个卷用于持久数据存储。
创建 config.yml 文件(如果需要) -
$ touch config.yml
目前,您可以将其保留为空或根据需要添加配置。
现在我们已经设置了项目目录,让我们概述 Portainer 项目所需的结构和依赖项。
portainer-project/ │ ├── Dockerfile ├── config.yml # Optional: Configuration file for Portainer └── README.md # Optional: Documentation for your project
在本地运行 Portainer
在使用自定义 Dockerfile 将 Portainer Docker 化之前,让我们首先使用 Docker 在本地运行 Portainer。这将确保 Portainer 正确运行,并为以后创建 Dockerfile 提供良好的基线。
步骤 1:从 Docker Hub 拉取 Portainer 镜像
我们将首先从 Docker Hub 拉取官方 Portainer 镜像。此镜像已包含运行 Portainer 所需的一切。
$ docker pull portainer/portainer-ce
此镜像是 Portainer 的社区版,它是免费的,并且包含管理 Docker 环境的所有功能。
步骤 2:将 Portainer 作为 Docker 容器运行
现在,我们可以使用我们拉取的镜像来运行 Portainer 容器。以下命令在端口 9000 上运行 Portainer,这是 Portainer Web 界面的默认端口。
$ docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
命令分解
- -d - 以分离模式(在后台)运行容器。
- -p 9000:9000 - 将主机上的端口 9000 映射到容器中的端口 9000。
- --name=portainer - 将容器命名为 portainer。
- --restart=always - 确保 Portainer 容器在停止或系统重新启动时自动重新启动。
- -v /var/run/docker.sock:/var/run/docker.sock - 挂载 Docker 套接字以允许 Portainer 与主机上的 Docker 守护程序通信。
- -v portainer_data:/data - 创建一个名为 portainer_data 的 Docker 卷以持久化 Portainer 的数据,例如设置和配置。
步骤 3:访问 Portainer Web 界面
您现在可以通过打开 Web 浏览器并导航到以下位置来访问 Portainer Web 界面:https://127.0.0.1:9000。
系统会提示您创建管理员用户并设置初始 Portainer 环境。您可以按照屏幕上的说明完成设置。
步骤 4:验证 Portainer 设置
您可以通过登录 Web 界面来检查 Portainer 是否正确运行。您应该会看到 Portainer 仪表板。您可以选择您的环境,例如本地环境,并且您将能够看到本地机器中的所有镜像和容器。
在本地运行并验证 Portainer 后,我们准备创建一个 Dockerfile 来 Docker 化我们的自定义 Portainer 设置。
创建 Dockerfile 和构建镜像
让我们现在创建 Dockerfile。在您的 portainer-project 目录中,创建一个名为 Dockerfile 的文件 -
$ touch Dockerfile
步骤 1. 定义 Dockerfile 内容
在文本编辑器中打开 Dockerfile 并添加以下内容 -
# Use the official Portainer community edition image as the base image FROM portainer/portainer-ce:latest # Set environment variables (if any) ENV PORTAINER_ADMIN_PASSWORD='yourpassword' # Expose the Portainer port EXPOSE 9000 # Define the default command to run Portainer CMD ["portainer"]
Dockerfile 分解
- FROM portainer/portainer-ce:latest - 它指定我们使用最新的官方 Portainer 社区版镜像作为我们自定义 Dockerfile 的基础镜像。
- ENV PORTAINER_ADMIN_PASSWORD='yourpassword' - (可选)它设置 Portainer 管理员密码的环境变量。
- EXPOSE 9000 - 此行公开端口 9000,Portainer 的 Web 界面使用此端口。
- CMD ["portainer"] - 这是运行 Portainer 的默认命令。
步骤 2:构建 Docker 镜像
使用此 Dockerfile,我们可以使用以下命令构建您的自定义 Portainer 镜像 -
$ docker build -t my-portainer-image .
-t my-portainer-image - 将构建的镜像标记为 my-portainer-image。
.: 指定当前目录作为构建上下文。
步骤 3:验证镜像构建
我们可以通过列出所有 Docker 镜像来验证我们的自定义镜像是否已成功创建 -
$ docker images
您应该在可用镜像中看到 my-portainer-image。
运行 Portainer Docker 容器
现在我们已经准备好了 Docker 镜像,我们可以使用自定义 Portainer 镜像运行 Docker 容器。
步骤 1:运行 Portainer 容器
我们可以使用以下命令从您的自定义 Portainer 镜像启动容器 -
$ docker run -d -p 9000:9000 --name=portainer-container --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data my-portainer-image
命令分解
- -d - 以分离模式(在后台)运行容器。
- -p 9000:9000 - 将主机上的端口 9000 映射到容器中的端口 9000。这允许您通过 https://127.0.0.1:9000 访问 Portainer Web 界面。
- --name=portainer-container - 为容器分配一个名称,以便在 Docker 命令中更容易引用。
- --restart=always - 配置 Docker 在容器停止或主机系统重新启动时自动重新启动容器。
- -v /var/run/docker.sock:/var/run/docker.sock - 将 Docker 套接字挂载到容器中,以便 Portainer 可以与主机上的 Docker 守护程序通信。
- -v portainer_data:/data - 创建并挂载一个名为 portainer_data 的 Docker 卷以持久化 Portainer 的数据,例如配置和设置。
- my-portainer-image - 指定您之前构建的自定义 Docker 镜像的名称。
步骤 2:访问 Portainer Web 界面
由于容器正在运行,我们可以打开 Web 浏览器并导航到:https://127.0.0.1:9000。
我们应该会看到 Portainer 登录屏幕。我们可以使用在初始设置期间设置的管理员凭据登录。
结论
在本节中,我们讲解了如何通过创建项目、了解项目所需的依赖项、创建 Dockerfile 以及运行 Portainer 容器来将 Portainer 容器化。
我们创建了一个可移植且易于维护的环境,通过该环境,我们将能够以更高的效率管理我们的 Docker 环境。它还确保我们的设置可复制且一致,这有助于轻松维护容器。
您可以进一步自定义 Portainer,将其与您的 CI/CD 管道集成,或使用它管理复杂的 Docker 环境。
Portainer 容器化的常见问题
关于 Portainer 容器化,有一些非常常见的问题 (FAQ),本节尝试简要回答它们。
1. 如何在 Docker 容器中设置 Portainer?
要在 Docker 容器中设置 Portainer,请使用官方 Portainer 镜像创建一个 Dockerfile。使用环境变量或容器内的配置文件在该 Docker 容器内配置 Portainer 的设置。公开所需的端口并启动容器。考虑映射一个卷来持久化 Portainer 的数据和配置。
2. 使用 Portainer 与 Docker 有什么好处?
Portainer 是一种通过基于 Web 的界面管理 Docker 的简单方法,因为它提供了一个直观的界面,可以加深用户体验并与构成 Docker 生态系统的多数实体(例如容器、镜像和网络等)进行交互。这使得创建和管理容器、部署应用程序以及资源使用变得更加容易。
3. 如何保护 Portainer 访问权限?
通过在 Portainer 界面中设置身份验证和授权来锁定对 Portainer 的访问。您可以提供基于密码的身份验证,或使用与外部身份验证提供程序的多种集成之一。此外,请考虑根据 IP 地址或其他条件限制对 Portainer 的访问。