皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

使用Podman在Fedora Linux上安装Nextcloud 20

如今,许多开源项目都提供了易于部署的容器映像。在运行家庭服务器或实验室环境时,这非常方便。Fedora杂志之前的文章介绍了如何从源代码包安装Nextcloud。本文介绍了如何在Podman上作为容器部署在Fedora 33上运行Nextcloud。

什么是Nextcloud?

Nextcloud作为Owncloud的分支而成立于2016年。从那时起,它发展成为功能强大的协作软件,可提供文件,日历和联系人同步等功能。您可以在其中运行一个简单的看板,也可以协作编写文档。Nextcloud根据AGPLv3许可是完全开源的,可用于私人或商业用途。

什么是Podman?

Podman是一个容器引擎,用于在Linux系统上开发,管理和运行OCI容器。它提供了多种功能,例如无根模式,cgroupv2支持,pod管理,并且可以运行无守护程序。此外,您将获得与Docker兼容的API,以进行进一步的开发。默认情况下,它在Fedora工作站上可用,并且可以使用。

如果需要安装podman,请运行:

sudo dnf安装podman

设计部署

每个部署都需要一点准备。当然,您可以简单地启动一个容器并开始使用它,但这并不是那么有趣。精心设计的部署应该易于理解,并提供某种灵活性。

容器/图像

首先,您需要为部署选择正确的容器映像。对于Nextcloud来说,这非常容易,因为它已经为容器部署提供了相当不错的文档。Nextcloud支持两种变体:Nextcloud Apache httpd(完全独立)和Nextcloud php-fpm(需要额外的nginx容器)。

在这两种情况下,您还都需要提供一个数据库,该数据库可以是MariaDB(推荐)或PostgreSQL(也受支持)。本文使用Apache httpd + MariaDB安装。

卷数

运行容器不会持久化您在运行时创建的数据。您可以通过重新创建容器来执行更新。因此,您将需要一些卷来存储数据库和Nextcloud文件。Nextcloud还建议您将“数据”文件夹放在单独的卷中。因此,您将获得以下三卷内容:

  • nextcloud-app
  • nextcloud数据
  • nextcloud-db

网络

最后,您需要考虑联网。容器的好处之一是,您可以重新创建部署,就像在生产中那样。网络分段是一种非常普遍的做法,容器部署也应考虑网络分段。本教程不会添加高级功能,例如网络负载平衡或安全分段。您只需要一个网络即可用于发布Nextcloud的端口。创建网络还提供dnsname插件,该插件将允许基于容器名称的容器通信。

图片

现在已经准备好每个元素,您可以将它们放在一起,并且对开发的外观有了很好的理解。

使用Podman在Fedora Linux上安装Nextcloud 20

运行,Nextcloud,运行

现在,您已经准备好所有要素,并且可以开始运行命令以部署Nextcloud。所有命令都可以用于root特权或无根部署。本文将坚持无根部署。

通过网络进行销售:

#创建一个新的网络
$ podman网络创建nextcloud-net

#列出所有网络
$ podman网络ls

#检查网络
$ podman网络检查nextcloud-net

在上一个命令中可以看到,您创建了一个名为“ dns.podman”的DNS区域。可通过“ CONTAINER_NAME.dns.podman”访问此网络中创建的所有容器。

接下来,可以选择准备卷。可以跳过此步骤,因为Podman将根据需要创建命名卷(如果它们不存在)。Podman支持在特定位置创建的命名卷,因此您无需照顾SELinux等。

#创建卷
$ podman卷创建nextcloud-app
$ podman卷创建nextcloud-data
$ podman卷创建nextcloud-db

#上市量
$ podman音量ls

#检查卷(这也提供了完整路径)
$ podman卷检查nextcloud-app

网络和卷已完成。现在提供容器。

首先,您需要数据库。根据MariaDB映像文档,您需要提供一些其他环境变量。此外,您需要附加创建的卷,连接网络并提供容器的名称。下一个命令将再次需要大多数值。(请注意,您应该用唯一的密码替换DB_USER_PASSWORD和DB_ROOT_PASSWORD。)

#部署Mariadb
$ podman运行--detach 
  --env MYSQL_DATABASE = nextcloud 
  --env MYSQL_USER = nextcloud 
  --env MYSQL_PASSWORD = DB_USER_PASSWORD 
  --env MYSQL_ROOT_PASSWORD = DB_ROOT_PASSWORD 
  --volume nextcloud-db:/ var / lib / mysql 
  -网络nextcloud-net 
  -重新启动失败 
  --name nextcloud-db 
  docker.io/library/mariadb:10

#检查正在运行的容器
$ podman容器ls

成功启动新的MariaDB容器后,您可以部署Nextcloud本身。(请注意,应将DB_USER_PASSWORD替换为上一步中使用的密码。将NC_ADMIN和NC_PASSWORD替换为要用于Nextcloud管理员帐户的用户名和密码。)

#部署Nextcloud
$ podman运行--detach 
  --env MYSQL_HOST = nextcloud-db.dns.podman 
  --env MYSQL_DATABASE = nextcloud 
  --env MYSQL_USER = nextcloud 
  --env MYSQL_PASSWORD = DB_USER_PASSWORD 
  --env NEXTCLOUD_ADMIN_USER = NC_ADMIN 
  --env NEXTCLOUD_ADMIN_PASSWORD = NC_PASSWORD 
  --volume nextcloud-app:/ var / www / html 
  --volume nextcloud-data:/ var / www / html / data 
  -网络nextcloud-net 
  -重新启动失败 
  --name nextcloud 
  -发布8080:80 
  docker.io/library/nextcloud:20

#检查正在运行的容器
$ podman容器ls

现在两个容器都在运行,您可以配置容器了。打开浏览器并指向“ localhost:8080”(如果它在其他服务器上运行,则指向另一个主机名或IP地址)。

第一次加载可能需要一些时间(30秒),甚至报告“无法加载”。这来自正在准备首次运行的Nextcloud。在这种情况下,请等待一两分钟。Nextcloud将提示输入用户名和密码。

使用Podman在Fedora Linux上安装Nextcloud 20

输入您之前使用的用户名和密码。

使用Podman在Fedora Linux上安装Nextcloud 20

现在您可以开始体验Nextcloud进行测试,开发或家用服务器了。

更新

如果要更新其中一个容器,则需要提取新映像并重新创建容器。

#更新mariadb
$ podman pull mariadb:10
$ podman停止nextcloud-db
$ podman rm nextcloud-db
$ podman运行--detach 
  --env MYSQL_DATABASE = nextcloud 
  --env MYSQL_USER = nextcloud 
  --env MYSQL_PASSWORD = DB_USER_PASSWORD 
  --env MYSQL_ROOT_PASSWORD = DB_ROOT_PASSWORD 
  --volume nextcloud-db:/ var / lib / mysql 
  -网络nextcloud-net 
  -重新启动失败 
  --name nextcloud-db 
  docker.io/library/mariadb:10

更新Nextcloud容器的工作原理完全相同。

#更新Nextcloud

$ podman pull nextcloud:20
$ podman停止nextcloud
$ podman rm nextcloud
$ podman运行--detach 
  --env MYSQL_HOST = nextcloud-db.dns.podman 
  --env MYSQL_DATABASE = nextcloud 
  --env MYSQL_USER = nextcloud 
  --env MYSQL_PASSWORD = DB_USER_PASSWORD 
  --env NEXTCLOUD_ADMIN_USER = NC_ADMIN 
  --env NEXTCLOUD_ADMIN_PASSWORD = NC_PASSWORD 
  --volume nextcloud-app:/ var / www / html 
  --volume nextcloud-data:/ var / www / html / data 
  -网络nextcloud-net 
  -重新启动失败 
  --name nextcloud 
  -发布8080:80 
  docker.io/library/nextcloud:20

而已; 您的Nextcloud安装再次是最新的。

结论

用Podman部署Nextcloud非常容易。几分钟后,您将拥有一个非常方便的协作软件,可提供文件同步,日历,联系人等更多信息。查看apps.nextcloud.com,它将进一步扩展功能。

机翻自 https://fedoramagazine.org/nextcloud-20-on-fedora-linux-with-podman/