Mehdi Haghgoo 发布的文章

Podman Desktop 是一个开源 GUI 应用,用于在 Linux、macOS 和 Windows 上管理容器。

从历史上看,开发人员一直使用 Docker Desktop 对容器进行图形化管理。这适用于那些安装了 Docker Daemon 和 Docker CLI 的人。然而,对于那些使用无守护进程的 Podman 工具的人来说,虽然有一些 Podman 前端,如 PodsPodman desktop companionCockpit,但没有官方应用。现在不是这种情况了。有了 Podman Desktop!

本文将讨论由红帽和其他开源贡献者开发的 Podman Desktop 的特性、安装和使用。

安装

要在 Fedora Linux 上安装 Podman Desktop,请访问 podman-desktop.io,然后单击 “Download for Linux” 按钮。你将看到两个选项:Flatpak 和 zip。在这个例子中,我们使用的是 Flatpak。单击 “Flatpak” 链接后,通过双击文件在 GNOME 软件中打开它(如果你使用的是 GNOME)。你也可以通过终端安装它:

flatpak install podman-desktop-X.X.X.flatpak

在上面的命令中,将 X.X.X 替换为你下载的特定版本。如果你下载了 zip 文件,那么解压缩存档,然后启动 Podman Desktop 应用的二进制文件。你还可以通过进入 GitHub 上项目的 发布 页找到预发布版本。

特性

Podman Desktop 仍处于早期阶段。然而,它支持许多常见的容器操作,如创建容器镜像、运行容器等。此外,你可以在 “ 首选项 Preferences ” 的 “ 扩展 Extensions ” 部分下找到 Podman 扩展,你可以使用它来管理 macOS 和 Windows 上的 Podman 虚拟机。

此外,Podman Desktop 支持 Docker Desktop 扩展。你可以在 “ 首选项 Preferences ” 下的 “Docker Desktop Extensions” 安装此类扩展。应用窗口有两个窗格。左侧窄窗格显示应用的不同功能,右侧窗格是内容区域,它将根据左侧选择的内容显示相关信息。

Podman Desktop 0.0.6 在 Fedora 36 上运行

演示

为了全面了解 Podman Desktop 的功能,我们将从 Dockerfile 创建一个镜像并将其推送到注册中心,然后拉取并运行它,这一切都在 Podman Desktop 中完成。

构建镜像

第一步是通过在命令行中输入以下行来创建一个简单的 Dockerfile:

cat <<EOF>>Dockerfile
FROM docker.io/library/httpd:2.4
COPY . /var/www/html 
WORKDIR /var/www/html 

CMD ["httpd", "-D", "FOREGROUND"]
EOF

现在,点击 “ 镜像 Images ” 并按下 “ 构建镜像 Build Image ” 按钮。你将被带到一个新页面以指定 Dockerfile、构建上下文和镜像名称。在 Containerfile 路径下,单击并浏览以选择你的 Dockerfile。在镜像名称下,输入镜像的名称。如果要将镜像推送到容器注册中心,那么可以以 example.com/username/repo:tag 形式指定完全限定的镜像名称(FQIN)。在此示例中,我输入 quay.io/codezombie/demo-httpd:latest,因为我在 quay.io 上有一个名为 demo-httpd 的公共仓库。你可以按照类似的格式来指定容器注册中心(Quay、Docker Hub、GitHub Container Registry 等)的 FQIN。现在,按下 “ 构建 Build ” 按钮并等待构建完成。

推送镜像

构建完成后,就该推送镜像了。所以,我们需要在 Podman Desktop 中配置一个注册中心。进入 “ 首选项 Preferences ” -> “ 注册中心 Registries ” 并按下 “ 添加注册中心 Add registry ” 按钮。

添加注册中心对话框

在 “ 添加注册中心 Add registry ” 对话框中,输入你的注册中心服务器地址和用户凭据,然后单击 “ 添加注册中心 Add registry ”。

现在,回到镜像列表中我的镜像,并按下上传图标将其推送到仓库。当你将鼠标悬停在设置中添加的注册中心名称开头的镜像名称上时(此演示中的 quay.io),镜像名称旁边会出现一个推送按钮。

将鼠标悬停在镜像名称上时出现的按钮

镜像通过 Podman Desktop 推送到仓库

镜像被推送后,任何有权访问镜像仓库的人都可以拉取它。由于我的镜像仓库是公开的,因此你可以轻松地将其拉入 Podman Desktop。

拉取镜像

因此,为确保一切正常,请在本地删除此镜像并将其拉入 Podman Desktop。在列表中找到镜像并按删除图标将其删除。删除镜像后,单击 “ 拉取镜像 Pull Image ” 按钮。在 “ 要拉取的镜像 Image to Pull ” 输入完全限定名称,然后按 “ 拉取镜像 Pull Image ”。

Our container image is successfully pulled

创建一个容器

作为 Podman Desktop 演示的最后一部分,让我们从镜像中启动一个容器并检查结果。转到 “ 容器 Containers ” 并按 “ 创建容器 Create Container ”。这将打开一个包含两个选项的对话框:“ 从 Containerfile/Dockerfile From Containerfile/Dockerfile ” 和 “ 从已有镜像 From existing image ”。按下 “ 从已有镜像 From existing image ”。这将进入镜像列表。在那里,选择我们要拉取的镜像。

在 Podman Desktop 中创建容器

现在,我们从列表中选择我们最近拉取的镜像,然后按它前面的 “ 运行 Play ” 按钮。在出现的对话框中,我输入 demo-web 作为容器名,输入 8000 作为端口映射,然后按下 “ 启动容器 Start Container ”。

Container configuration

容器开始运行,我们可以通过运行以下命令检查 Apache 服务器的默认页面:

curl http://localhost:8000

可以工作!

你还应该能够在容器列表中看到正在运行的容器,其状态已更改为 “ 运行中 Running ”。在那里,你会在容器前面找到可用的操作。例如,你可以单击终端图标打开 TTY 进入到容器中!

接下来是什么

Podman Desktop 还很年轻,处于 积极开发 中。 GitHub 上有一个项目 路线图,其中列出了令人兴奋的按需功能,包括:

  • Kubernetes 集成
  • 支持 Pod
  • 任务管理器
  • 卷支持
  • 支持 Docker Compose
  • Kind 支持

via: https://fedoramagazine.org/manage-containers-on-fedora-linux-with-podman-desktop/

作者:Mehdi Haghgoo 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

简介

Homebrew 是一个 macOS 的包管理器,用于在 macOS 上安装 UNIX 工具。但是,它也可以在 Linux(和 Windows WSL)上使用。它是用 Ruby 编写的,并提供主机系统(macOS 或 Linux)可能不提供的软件包,因此它在操作系统包管理器之外提供了一个辅助的包管理器。此外,它只以非 root 用户身份在前缀 /home/linuxbrew/.linuxbrew~/.linuxbrew 下安装软件包,不会污染系统路径。这个包管理器在 Fedora Linux 上也适用。在这篇文章中,我将尝试告诉你 Homebrew 与 Fedora Linux 包管理器 dnf 有什么不同,为什么你可能想在 Fedora Linux 上安装和使用它,以及如何安装。

免责声明

你应该经常检查你在系统上安装的软件包和二进制文件。Homebrew 包通常以非 sudoer 用户运行,并工作在专门的前缀的路径下,因此它们不太可能造成破坏或错误配置。然而,所有的安装操作都要自己承担风险。作者和 Fedora 社区不对任何可能直接或间接因遵循这篇文章而造成的损失负责。

Homebrew 如何工作

Homebrew 在底层使用 Ruby 和 Git。它使用特殊的 Ruby 脚本从源代码构建软件,这些脚本被称为 “ 配方 formula ”,看起来像这样(使用 wget 包作为例子):

(LCTT 译注:Homebrew 本身意思是“家酿”,在这个软件中,有各种类似于酿酒的比喻。)

class Wget < Formula
  homepage "https://www.gnu.org/software/wget/"
  url "https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz"
  sha256 "52126be8cf1bddd7536886e74c053ad7d0ed2aa89b4b630f76785bac21695fcd"

  def install
    system "./configure", "--prefix=#{prefix}"
    system "make", "install"
  end
end

Homebrew 与 dnf 有何不同

Homebrew 是一个包管理器,提供了许多 UNIX 软件工具和包的最新版本,例如 FFmpeg、Composer、Minikube 等。当你想安装一些由于某种原因在 Fedora Linux RPM 仓库中没有的软件包时,它就会证明很有用。所以,它并不能取代 dnf

安装 Homebrew

在开始安装 Homebrew 之前,确保你已经安装了 glibc 和 gcc。这些工具可以在 Fedora 上通过以下方式安装:

sudo dnf groupinstall "Development Tools"

然后,通过在终端运行以下命令来安装 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

在安装过程中,你会被提示输入你的 sudo 密码。另外,你可以选择 Homebrew 的安装前缀,但默认的前缀就可以了。在安装过程中,你将成为 Homebrew 前缀目录的所有者,这样你就不必输入 sudo 密码来安装软件包。安装将需要数分钟。完成后,运行以下命令,将 brew 添加到你的 PATH 中:

echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bash_profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

安装和检查软件包

要在 Homebrew 上使用“配方”安装一个软件包,只需运行:

brew install <formula>

<formula> 替换为你要安装的“配方”的名称。例如,要安装 Minikube,只需运行:

brew install minikube

你也可以用以下方式搜索“配方”:

brew search <formula>

要获得一个“配方”的信息,请运行:

brew info <formula>

另外,你可以用以下命令查看所有已安装的“配方”:

brew list

卸载软件包

要从你的 Homebrew 前缀中卸载一个软件包,请运行:

brew uninstall <formula>

升级软件包

要升级一个用 Homebrew 安装的特定软件包,请运行:

brew upgrade <formula>

要更新 Homebrew 和所有已安装的“配方”到最新版本,请运行:

brew update

总结

Homebrew 是一个简单的包管理器,可以与 dnf 一起成为有用的工具(两者完全没有关系)。尽量坚持使用 Fedora 原生的 dnf 包管理器,以避免软件冲突。然而,如果你在 Fedora Linux 软件库中没有找到某个软件,那么你也许可以用 Homebrew 找到并安装它。请看 “配方”列表 以了解有哪些可用的软件。另外,Fedora Linux 上的 Homebrew 还不支持图形化应用(在 Homebrew 术语中称为“ 酒桶 cask ”)。至少,我在安装 GUI 应用时没有成功过。

参考资料和进一步阅读

要了解更多关于 Homebrew 的信息,请查看以下资源:


via: https://fedoramagazine.org/using-homebrew-package-manager-on-fedora-linux/

作者:Mehdi Haghgoo 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

容器很棒,让你可以将你的应用连同其依赖项一起打包,并在任何地方运行。从 2013 年的 Docker 开始,容器已经让软件开发者的生活变得更加轻松。

Docker 的一个缺点是它有一个中央守护进程,它以 root 用户的身份运行,这对安全有影响。但这正是 Podman 的用武之地。Podman 是一个 无守护进程容器引擎,用于开发、管理和在你的 Linux 系统上以 root 或无 root 模式运行 OCI 容器。

下面这些文章可以用来了解更多关于 Podman 的信息:

如果你使用过 Docker,你很可能也知道 Docker Compose,它是一个用于编排多个可能相互依赖的容器的工具。要了解更多关于 Docker Compose 的信息,请看它的文档

什么是 Podman Compose?

Podman Compose 项目的目标是作为 Docker Compose 的替代品,而不需要对 docker-compose.yaml 文件进行任何修改。由于 Podman Compose 使用 吊舱 pod 工作,所以最好看下“吊舱”的最新定义。

一个“ 吊舱 pod ”(如一群鲸鱼或豌豆荚)是由一个或多个容器组成的组,具有共享的存储/网络资源,以及如何运行容器的规范。

Pods - Kubernetes 文档

(LCTT 译注:容器技术领域大量使用了航海比喻,pod 一词,意为“豆荚”,在航海领域指“吊舱” —— 均指盛装多个物品的容器。常不翻译,考虑前后文,可译做“吊舱”。)

Podman Compose 的基本思想是,它选中 docker-compose.yaml 文件里面定义的服务,为每个服务创建一个容器。Docker Compose 和 Podman Compose 的一个主要区别是,Podman Compose 将整个项目的容器添加到一个单一的吊舱中,而且所有的容器共享同一个网络。如你在例子中看到的,在创建容器时使用 --add-host 标志,它甚至用和 Docker Compose 一样的方式命名容器。

安装

Podman Compose 的完整安装说明可以在项目页面上找到,它有几种方法。要安装最新的开发版本,使用以下命令:

pip3 install https://github.com/containers/podman-compose/archive/devel.tar.gz

确保你也安装了 Podman,因为你也需要它。在 Fedora 上,使用下面的命令来安装Podman:

sudo dnf install podman

例子:用 Podman Compose 启动一个 WordPress 网站

想象一下,你的 docker-compose.yaml 文件在一个叫 wpsite 的文件夹里。一个典型的 WordPress 网站的 docker-compose.yaml (或 docker-compose.yml) 文件是这样的:

version: "3.8"
services:
  web:
    image: wordpress
    restart: always
    volumes:
      - wordpress:/var/www/html
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: magazine
      WORDPRESS_DB_NAME: magazine
      WORDPRESS_DB_PASSWORD: 1maGazine!
      WORDPRESS_TABLE_PREFIX: cz
      WORDPRESS_DEBUG: 0
    depends_on:
      - db
    networks:
      - wpnet
  db:
    image: mariadb:10.5
    restart: always
    ports:
      - 6603:3306

    volumes:
      - wpdbvol:/var/lib/mysql

    environment:
      MYSQL_DATABASE: magazine
      MYSQL_USER: magazine
      MYSQL_PASSWORD: 1maGazine!
      MYSQL_ROOT_PASSWORD: 1maGazine!
    networks:
      - wpnet
volumes:
  wordpress: {}
  wpdbvol: {}

networks:
  wpnet: {}

如果你用过 Docker,你就会知道你可运行 docker-compose up 来启动这些服务。Docker Compose 会创建两个名为 wpsite_web_1wpsite_db_1 的容器,并将它们连接到一个名为 wpsite_wpnet 的网络。

现在,看看当你在项目目录下运行 podman-compose up 时会发生什么。首先,一个以执行命令的目录命名的吊舱被创建。接下来,它寻找 YAML 文件中定义的任何名称的卷,如果它们不存在,就创建卷。然后,在 YAML 文件的 services 部分列出的每个服务都会创建一个容器,并添加到吊舱中。

容器的命名与 Docker Compose 类似。例如,为你的 web 服务创建一个名为 wpsite_web_1 的容器。Podman Compose 还为每个命名的容器添加了 localhost 别名。之后,容器仍然可以通过名字互相解析,尽管它们并不像 Docker 那样在一个桥接网络上。要做到这一点,使用选项 -add-host。例如,-add-host web:localhost

请注意,docker-compose.yaml 包含了一个从主机 8080 端口到容器 80 端口的 Web 服务的端口转发。现在你应该可以通过浏览器访问新 WordPress 实例,地址为 http://localhost:8080

WordPress Dashboard

控制 pod 和容器

要查看正在运行的容器,使用 podman ps,它可以显示 web 和数据库容器以及吊舱中的基础设施容器。

CONTAINER ID  IMAGE                               COMMAND               CREATED      STATUS          PORTS                                         NAMES
a364a8d7cec7  docker.io/library/wordpress:latest  apache2-foregroun...  2 hours ago  Up 2 hours ago  0.0.0.0:8080-&amp;gt;80/tcp, 0.0.0.0:6603-&amp;gt;3306/tcp  wpsite_web_1
c447024aa104  docker.io/library/mariadb:10.5      mysqld                2 hours ago  Up 2 hours ago  0.0.0.0:8080-&amp;gt;80/tcp, 0.0.0.0:6603-&amp;gt;3306/tcp  wpsite_db_1
12b1e3418e3e  k8s.gcr.io/pause:3.2

你也可以验证 Podman 已经为这个项目创建了一个吊舱,以你执行命令的文件夹命名。

POD ID        NAME             STATUS    CREATED      INFRA ID      # OF CONTAINERS
8a08a3a7773e  wpsite           Degraded  2 hours ago  12b1e3418e3e  3

要停止容器,在另一个命令窗口中输入以下命令:

podman-compose down

你也可以通过停止和删除吊舱来实现。这实质上是停止并移除所有的容器,然后再删除包含的吊舱。所以,同样的事情也可以通过这些命令来实现:

podman pod stop podname
podman pod rm podname

请注意,这不会删除你在 docker-compose.yaml 中定义的卷。所以,你的 WordPress 网站的状态被保存下来了,你可以通过运行这个命令来恢复它。

podman-compose up

总之,如果你是一个 Podman 粉丝,并且用 Podman 做容器工作,你可以使用 Podman Compose 来管理你的开发和生产中的容器。


via: https://fedoramagazine.org/manage-containers-with-podman-compose/

作者:Mehdi Haghgoo 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Eclipse 是由 Eclipse 基金会开发的功能全面的自由开源 IDE。它诞生于 2001 年。你可以在此 IDE 中编写各种程序,从 C/C++ 和 Java 到 PHP,乃至于 Python、HTML、JavaScript、Kotlin 等等。

安装

该软件可从 Fedora 的官方仓库中获得。要安装它,请用:

sudo dnf install eclipse

这将安装基本的 IDE 和 Eclipse 平台,能让你开发 Java 应用。为了将 PHP 开发支持添加到 IDE,请运行以下命令:

sudo dnf install eclipse-pdt

这将安装 PHP 开发工具,如 PHP 项目向导、PHP 服务器配置,composer 支持等。

功能

该 IDE 有许多使 PHP 开发更加容易的功能。例如,它有全面的项目向导(你可以在其中为新项目配置许多选项)。它还有如 composer 支持、调试支持、浏览器、终端等内置功能。

示例项目

现在已经安装了 IDE,让我们创建一个简单的 PHP 项目。进入 “File →New → Project”。在出现的对话框中,选择 “PHP project”。输入项目的名称。你可能还需要更改其他一些选项,例如更改项目的默认位置,启用 JavaScript 以及更改 PHP 版本。请看以下截图。

Create A New PHP Project in Eclipse

你可以单击 “Finish” 按钮创建项目,或按 “Next” 配置其他选项,例如添加包含和构建路径。在大多数情况下,你无需更改这些设置。

创建项目后,右键单击项目文件夹,然后选择 “New→PHP File” 将新的 PHP 文件添加到项目。在本教程中,我将其命名为 index.php,这是每个 PHP 项目中公认的默认文件。

add a new PHP file

接着在新文件中添加代码。

Demo PHP code

在上面的例子中,我在同一页面上使用了 CSS、JavaScript 和 PHP 标记,主要是为了展示 IDE 能够支持所有这些标记。

页面完成后,你可以将文件移至 Web 服务器文档根目录或在项目目录中创建一个 PHP 开发服务器来查看输出。

借助 Eclipse 中的内置终端,我们可以直接在 IDE 中启动 PHP 开发服务器。只需单击工具栏上的终端图标,然后单击 “OK”。在新终端中,进入项目目录,然后运行以下命令:

php -S localhost:8080 -t . index.php

Terminal output

现在,打开浏览器并进入 http://localhost:8080。如果按照说明正确完成了所有操作,并且代码没有错误,那么你将在浏览器中看到 PHP 脚本的输出。

PHP output in Fedora


via: https://fedoramagazine.org/php-development-on-fedora-with-eclipse/

作者:Mehdi Haghgoo 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

GIMP(GNU Image Manipulation Program 的缩写)是自由开源的图像处理软件。它有很多的功能,从简单的图像编辑,到复杂的滤镜、脚本,甚至是动画,它是流行的商业同类软件的一款很好的替代品。

继续阅读来学习如何在 Fedora 上安装和使用 GIMP。这篇文章涉及基本的日常图像编辑工作。

安装 GIMP

GIMP 在官方 Fedora 存储库中可获得。为安装它,运行:

sudo dnf install gimp

单窗口模式

在你打开应用程序后,它显示带有工具箱和主编辑区的暗色主题窗口。注意,它有两种窗口模式,你可以通过选择“ 窗口 Windows -> 单窗口模式 Single Window Mode ”在其中切换。通过选中这个选项,用户界面的所有组件将显示在单个窗口中。否则,它们将是分离的。

加载图像

为加载图像,转到“ 文件 File -> 打开 Open ”,然后选择你的文件并选择你的图像文件。

重新调整一个图像的大小

为重新调整图像大小,你可以基于一对参数重新调整大小,包括像素和百分比 —— 在编辑图像时,这两个参数很方便。

让我们假使我们需要缩小 Fedora 30 背景图像到它当前大小的 75%。为此,选择“ 图像 Image -> 比例 Scale ”,然后在比例对话框上,在单位下拉列表中选择“ 百分比 percentage ”。接下来,输入 “75” 作为宽度或高度,然后按 Tab 键。默认情况下,其它尺寸将自动地调整大小,以相应地与更改的尺寸保持纵横比。现在,保存其它选项不变,并按比例。

该图像缩小到其原始尺寸的 75%。

旋转图像

旋转是一种变换操作,因此,你可以从主菜单下的“ 图像 Image -> 变换 Transform ”下找到它,其中有图像旋转 90° 或 180° 的选项。在上述选项下也有垂直或水平翻转图像的选项。

让我们假使我们需要旋转图像 90°。在应用一次 90° 顺时针旋转和水平翻转后,我们的图像将看起来像这样:

添加文本

添加文本非常简单。只需要从工具箱中选择 “A” 图标,然后,在你的图像上,单击你想要添加文本的位置。如果工具箱不可见,从“ 窗口 Windows -> 新建工具箱 New Toolbox ”打开它。

当你编辑文本时,你可能注意到,文本对话框有字体自定义选项,包括字体系列、字体大小等等。

保存和导出

你可以从“ 文件 File -> 保存 Save ”或通过按 Ctrl+S 来将你的编辑保存为一个带有 .xcf 扩展名的 GIMP 工程。或者,你可以导出你的图像,例如,以 PNG 或 JPEG 格式。为导出图像,转到“ 文件 File -> 导出为 Export As ”或按 Ctrl+Shift+E,接下来,在你面前将产生一个你可以选择输出图像和名称的对话框。


via: https://fedoramagazine.org/edit-images-on-fedora-easily-with-gimp/

作者:Mehdi Haghgoo 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出