- 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 - 设置 Pawns
Pawns.app 或 Pawns 是一个平台,允许用户通过共享其带宽或完成调查来赚钱。公司使用用户通过其 IP 地址共享的带宽来运行其服务,用户可以通过参与涵盖各种主题的调查来赚取更多钱。
在本章中,我们将深入探讨如何将 Pawns 容器化。将 Pawns 应用程序容器化将允许我们将其在隔离的环境中运行,以在不同的环境中实现一致性,而无需手动更改系统配置。
将 Pawns 容器化的先决条件
在开始本指南之前,请确保您具备以下先决条件:
- Docker 应用程序 - 验证 Docker 是否已在您的计算机上本地安装。它可以在 Docker 的官方网站上下载。如果您对 Docker 有所了解,那也将有所帮助。
- Docker Compose - 要通过 Docker Compose 使用 Docker 设置 Pawns,请确保您的计算机上已配置 Docker Compose。
- 界面命令行 (CLI) - 如果您对命令行界面 (CLI) 及其命令有基本的了解,您将能够更好地理解本文。
- 文本编辑器 - 编写配置文件需要使用文本编辑器,例如 VSCode 或 Sublime Text。
设置 Pawns 项目
要启动您的容器,您需要一个 Docker 镜像,因为它包含所有指令和数据,例如环境变量、数据库和构成您的应用程序的服务。
您有两个选择 - 提取预构建的 Docker 镜像或创建一个自定义 Pawns 项目,该项目将作为容器的 Docker 镜像。
创建自定义镜像时,您可以更好地控制环境。在本节中,我们将讨论创建自定义 Pawns 项目。
步骤 1:创建项目目录
创建一个项目目录,其中将存储与 Pawns.app 相关的所有文件。
# Create a folder for the Pawns project $ mkdir pawns-docker # Navigate into the directory $ cd pawns-docker
步骤 2:创建一个基本的 Dockerfile
导航到 pawns-docker 目录并在其中创建一个 dockerfile,稍后将对其进行填充。
# Create a Dockerfile $ touch Dockerfile
在任何文本编辑器中打开 dockerfile 并向其中添加以下说明。每个说明都将创建一个单独的 Docker 镜像层。
# Use an appropriate base image FROM iproyal/pawns-cli:latest # Set a working directory WORKDIR /usr/src/app # Copy the application code (if needed) COPY . . # Install any dependencies (if required) # RUN npm install # Uncomment if Node.js is involved # Expose the default port EXPOSE 8080 # Define environment variables (optional, modify as needed) ENV NODE_ENV=production # Specify the default command to run CMD ["npm", "start"]
基本镜像设置为 pawns/app,公开的端口为 8080。
步骤 3:构建自定义 Docker 镜像
创建 docker 文件后,创建一个 Docker 镜像,该镜像将存储运行容器的说明。
$ docker build -t pawns-app .
步骤 4:运行 Pawns 容器
让我们使用刚刚创建的镜像运行 Pawns 容器。
$ docker run -d --name pawns -p 8080:8080 pawns-app
步骤 5:使用卷持久化数据
Pawns 容器中的数据是临时存储的,即它只会持续到您拥有容器的时间。您可以使用 Docker 卷永久存储数据,以便即使在删除 Pawns 容器后也不会丢失。
即使您决定删除容器,您也可以通过 Docker 卷永远保存数据。
$ docker run -d --name pawns -p 8080:8080 -v ./pawns-data:/app/data pawns-app
使用预构建的 Docker 镜像
要使用 Docker 安装 Pawns,您可以使用已构建的官方 Docker 镜像,从而避免了创建自己的镜像的麻烦。
步骤 1:提取 Pawns 镜像
在运行容器之前,先提取 Pawns 的 Docker 镜像。
$ docker pull iproyal/pawns-cli:latest
步骤 2:运行 Pawns 容器
提取 Docker 镜像后,就可以运行 Pawns 容器了。
$ docker run -d --name pawns -p 8080:8080 iproyal/pawns-cli:latest
其中,
- -d - 表示分离模式,这意味着此进程将在后台运行
- --name pawns - 表示容器的名称
- -p 8080:8080 - 将您本地机器上的端口 8080 映射到 Pawns 容器中的端口 8080。这允许您通过在浏览器中访问https://127.0.0.1:8080来访问 Pawns 的仪表板。
- pawns/app - 用于创建容器的 docker 镜像的名称
使用 Docker Compose 设置 Pawns
让我们使用官方 Docker 镜像使用 Docker compose 创建 Docker 容器。
步骤 1:创建一个 docker-compose.yml 文件
在您的 pawns 目录中创建一个 docker-compose.yml 文件。
$ touch docker-compose.yml
您的目录结构现在应该如下所示:
pawns-docker/ └── docker-compose.yml └── Dockerfile └── pawns-data/
步骤 2:填充 .yml 文件
在文本编辑器中打开您的 docker-compose.yml 文件,并向其中添加以下配置:
version: '3.8' services: pawns: image: iproyal/pawns-cli:latest container_name: pawns restart: unless-stopped ports: - "8080:8080" volumes: - ./pawns-data:/app/data environment: - APP_ENV=production - APP_PORT=8080 - DATABASE_URL=sqlite:///app/data/pawns.db - LOG_LEVEL=info networks: - pawns-network logging: driver: "json-file" options: max-size: "10m" max-file: "3" healthcheck: test: ["CMD-SHELL", "curl -f https://127.0.0.1:8080/ || exit 1"] interval: 30s retries: 3 start_period: 30s timeout: 10s networks: pawns-network: driver: bridge volumes: pawns-data: driver: local
步骤 3:运行 Docker Compose
$ docker-compose up -d
结论
在本章中,我们已成功将 Pawns 容器化。我们创建了一个 Docker 容器并运行了 Pawns 实例,使服务在不同的环境中保持一致,并与其他应用程序隔离。Docker 卷确保即使您的容器崩溃或被删除,您的持久化数据也是安全的。
在 Docker 中运行 Pawns 更易于维护和部署,并且您可以使用 Docker Compose 自动化和加快设置过程。
关于将 Pawns 容器化的常见问题
在本节中,我们收集了一组关于将 Pawns 容器化的常见问题及其简短答案。
1. 如果我的 Pawns 容器被删除,我的数据也会被删除吗?
存储在 Pawns 容器内部的数据将被视为临时数据,因此一旦您删除容器,这些数据就会丢失。但是,存储在 Docker 卷中的数据将是永久性的,即使在删除容器后也可以访问。
在 docker-compose.yml 配置中,在主机上创建了一个名为“./pawns-data:/app/data”的部分,用于保存配置文件和日志。这确保了数据的安全,并允许通过使用相同卷创建新的容器来恢复数据。
2. 我可以将 Pawns 与 MySQL 或 PostgreSQL 等外部数据库一起使用吗?
PostgreSQL、MySQL 和 MongoDB 是 Pawns 不支持的第三方数据库的示例。该平台的配置、日志和其他数据作为其轻量级设计的一部分保存在本地文件中。
通常,这些文件保存在挂载的卷(./pawns-data:/app/data)中。可以使用 Docker 卷保留此数据,但是,Pawns 不旨在与外部数据库进行交互以进行数据管理或存储。如果您的应用程序需要,您可能需要集成额外的服务来处理更高级的数据处理。
3. 我可以保护我的 Pawns 实例免受意外访问吗?
您可以遵循正确的网络安全协议来保护 Pawns。要限制对 Pawns 公开端口的访问,请使用防火墙规则。例如,您可以设置防火墙,以便只有特定 IP 地址或子网才能访问端口 8080。
要通过 SSL/TLS 加密保护 Pawns 实例,请使用反向代理,例如 Nginx 或 Traefik。这确保了在您的用户和 Pawns 服务之间交换的任何数据的加密。通过使用 VPN 隐藏 Pawns,您可以进一步限制访问。另外,Pawns 实例只能由具有 VPN 访问权限的用户访问。