使用 Podman 以非 root 用户身份运行 Linux 容器

原创
ithorizon 7个月前 (10-14) 阅读数 22 #Linux

使用 Podman 以非 root 用户身份运行 Linux 容器

在 Linux 系统中,Podman 是一个流行的容器运行时,它提供了类似于 Docker 的功能,但与 Docker 不同的是,Podman 不需要 root 权限即可运行容器。这对于那些愿望以非 root 用户身份运行容器的用户来说是一个非常有用的特性。本文将介绍怎样使用 Podman 以非 root 用户身份运行 Linux 容器。

### 什么是 Podman?

Podman 是一个容器运行时,它允许用户创建、运行和管理容器,而不需要 root 权限。Podman 使用容器镜像来创建容器,这些镜像通常存储在容器镜像仓库中,如 Docker Hub。

### 安装 Podman

在大多数 Linux 发行版中,可以通过包管理器安装 Podman。以下是在 Ubuntu 和 CentOS 上安装 Podman 的示例:

#### Ubuntu

bash

sudo apt update

sudo apt install podman

#### CentOS

bash

sudo yum install podman

### 创建非 root 用户

为了以非 root 用户身份运行容器,首先需要创建一个非 root 用户。以下是在 Ubuntu 上创建非 root 用户的示例:

bash

sudo adduser myuser

为用户设置密码:

bash

sudo passwd myuser

### 配置用户权限

默认情况下,Podman 不允许非 root 用户创建或管理容器。为了允许非 root 用户使用 Podman,需要为用户添加相应的权限。

#### Ubuntu

在 Ubuntu 上,可以通过以下命令将用户添加到 `podman` 组:

bash

sudo usermod -aG podman myuser

确保用户已经注销并重新登录,以便更改生效。

#### CentOS

在 CentOS 上,可以通过以下命令将用户添加到 `podman` 组:

bash

sudo groupadd podman

sudo usermod -aG podman myuser

同样,确保用户已经注销并重新登录。

### 运行容器

现在,用户 `myuser` 可以使用 Podman 以非 root 用户身份运行容器。以下是一个使用 Podman 运行 Alpine 容器的示例:

bash

sudo su - myuser

podman run --name myalpine alpine

这里,`--name` 参数用于指定容器的名称,`alpine` 是 Alpine Linux 镜像的名称。

### 配置默认权限

为了简化以非 root 用户身份运行容器的过程,可以将用户添加到 `podman` 组,这样用户就不需要使用 `sudo` 命令了。以下是在 Ubuntu 上为所有用户配置默认权限的示例:

bash

sudo gpasswd -a $(whoami) podman

确保用户已经注销并重新登录。

### 使用卷和挂载点

Podman 允许您将卷和挂载点添加到容器中。以下是一个示例,展示了怎样以非 root 用户身份将本地目录挂载到容器中:

bash

podman run -d --name myalpine -v /path/to/local/directory:/path/in/container alpine

这里,`-v` 参数用于指定卷,`/path/to/local/directory` 是本地目录的路径,`/path/in/container` 是容器内的挂载点。

### 使用网络

Podman 允许您配置容器网络。以下是一个示例,展示了怎样为容器配置网络:

bash

podman run -d --name myalpine --network host alpine

这里,`--network` 参数用于指定网络模式,`host` 模式允许容器使用宿主机的网络接口。

### 总结

使用 Podman 以非 root 用户身份运行 Linux 容器是一种保险且高效的行为。通过将用户添加到 `podman` 组,您可以轻松地以非 root 用户身份运行和管理容器。本文介绍了怎样安装 Podman、创建非 root 用户、配置用户权限、运行容器、使用卷和挂载点以及配置网络。

愿望本文能帮助您更好地了解和使用 Podman 以非 root 用户身份运行 Linux 容器。如果您有任何疑问或需要进一步的帮助,请随时提问。

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Linux


热门