云网牛站
所在位置:首页 > Linux云服务器 > 使用Podman在Fedora Linux服务器上安装Nextcloud 20的方法

使用Podman在Fedora Linux服务器上安装Nextcloud 20的方法

2021-02-16 15:19:43作者:李哲稿源:云网牛站

本文介绍如何在Podman上作为容器部署在Fedora 33 Linux服务器上运行Nextcloud 20。默认情况下,Podman在Fedora工作站上可用,并且可以使用。如果需要安装podman,请运行sudo dnf install podman,参考在CentOS 7、Fedora 30/29/28上安装Podman的方法

 

前言

如今,许多开源项目都提供了易于部署的容器映像。在运行家庭服务器或实验室环境时,这非常方便。

1、什么是Nextcloud?

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

2、什么是Podman?

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

3、设计部署

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

4、容器/图像

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

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

5、卷数

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

nextcloud-app。

nextcloud-data。

nextcloud-db。

6、网络

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

7、附图

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

使用Podman在Fedora Linux服务器上安装Nextcloud 20的方法

 

运行,Nextcloud

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

从网络开始:

# 创建一个新的网络

$ podman network create nextcloud-net

# 列出所有网络

$ podman network ls

# 检查网络

$ podman network inspect nextcloud-net

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

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

# 创建卷

$ podman volume create nextcloud-app

$ podman volume create nextcloud-data

$ podman volume create nextcloud-db

# 上市量

$ podman volume ls

# 检查卷(这也提供了完整路径)

$ podman volume inspect nextcloud-app

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

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

# 部署Mariadb

$ podman run --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

 --network nextcloud-net

 --restart on-failure

 --name nextcloud-db

 docker.io/library/mariadb:10

# 检查运行中的容器

$ podman container ls

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

# 部署Nextcloud

$ podman run --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

 --network nextcloud-net

 --restart on-failure

 --name nextcloud

 --publish 8080:80

 docker.io/library/nextcloud:20

# 检查正在运行的容器

$ podman container ls

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

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

使用Podman在Fedora Linux服务器上安装Nextcloud 20的方法

输入您先前使用的用户名和密码:

使用Podman在Fedora Linux服务器上安装Nextcloud 20的方法

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

 

更新

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

# 更新mariadb

$ podman pull mariadb:10

$ podman stop nextcloud-db

$ podman rm nextcloud-db

$ podman run --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

 --network nextcloud-net

 --restart on-failure

 --name nextcloud-db

 docker.io/library/mariadb:10

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

# 更新Nextcloud

$ podman pull nextcloud:20

$ podman stop nextcloud

$ podman rm nextcloud

$ podman run --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

 --network nextcloud-net

 --restart on-failure

 --name nextcloud

 --publish 8080:80

 docker.io/library/nextcloud:20

至此,您的Nextcloud是最新的。

 

结论

用Podman部署Nextcloud非常容易。几分钟后,您将拥有一个非常方便的协作软件,可提供文件同步、日历、联系人等更多信息。

 

相关主题

使用Fedora 31和Nextcloud服务器构建自己的云(cloud)

精选文章
热门文章