The Issue of the Day Before

簡單開始 podman

podman -

What

podman

一個容器引擎,可以取代 docker

How

  • podman search

先搜尋有哪些 image 可下載。

首先需要編輯 registries.conf 來設定要搜尋的存儲庫,才能正確使用 podman search

可以直接編輯全域的 /etc/containers/registries.conf 或家目錄下的 ~/.config/containers/registries.conf

增加或編輯下列設定:

registries.conf
unqualified-search-registries = ["docker.io", "quay.io"]
// or
registries = ["docker.io", "quay.io"]

再使用 podman search 搜尋存儲庫中的 images

> podman search <TERM>

ex: podman search ubuntu

  • podman pull

將遠端的 image 下載到本地端。

> podman pull <IMAGE:TAG>

ex: podman pull node:18.16

  • podman images

下載後可,查看本地端的 images

> podman images
// REPOSITORY              TAG         IMAGE ID      CREATED       SIZE
// docker.io/library/node  18.16       c9e4d88ad304  43 hours ago  1.02 GB
  • podman run

建立容器並執行。

> podman run -dt --name <your_name> <IMAGE ID or REPOSITORY>
// or
> podman run --detach --tty --name <your_name> <IMAGE ID or REPOSITORY>

detach: 會將該容器放在後台執行。 tty: 會開啟一個 tty 介面,可以進行互動。 name: 給予容器名稱。建議取一個有意義的名稱,沒有則 podman 會自動產生。

ex: podman run -dt --name my_node node:18.16

  • podman create

效果同 podman run,但只建立容器不立刻執行。

> podman create --name <your_name> <IMAGE ID or REPOSITORY>

ex: podman create --name my_node node:18.16

  • podman ps

查看正在執行的容器。

> podman ps
// CONTAINER ID  IMAGE                   COMMAND               CREATED         STATUS             PORTS   NAMES
// 86d20ef4e3e8  docker.io/library/node:18.16  node  2 minutes ago   Up 2 minutes ago           my_node
  • podman attach

進入正在執行的容器。

> podman attach <CONTAINER ID or NAMES>

若使用 .exit 離開。 離開後容器將會停止,如果要容器運行,可以使用 podman start 來進入容器。 使用 podman ps -a 可以查看所有容器,包含已停止的容器。

> podman ps -a
// CONTAINER ID  IMAGE                         COMMAND     CREATED      STATUS                     PORTS       NAMES
// 86d20ef4e3e8  docker.io/library/node:18.16  node        3 hours ago  Exited (0) 13 seconds ago              my_node

使用 ctrl + p + q 離開,容器將會繼續運行,不會停止。

  • podman exec

進入正在執行的容器。

> podman exec -it <CONTAINER ID or NAMES> <COMMAND>

ex: podman exec -it my_node bash

執行 bash 指令,進入容器。進入容器後,可以下各種指令,使用 exit 來離開。

  • podman stop

停止正在執行的容器。

> podman stop <CONTAINER ID or NAMES>
  • podman start

開始執行已停止的容器。

> podman start <CONTAINER ID or NAMES>
  • podman rm

刪除容器。刪除之前,要先停止容器。

> podman rm <CONTAINER ID or NAMES>

ex: podman rm my_node

或強制刪除容器。

ex: podman rm -f my_node

  • podman rmi

刪除 image

> podman rmi <IMAGE ID or REPOSITORY>

ex: podman rmi node:18.16

閱讀在雲端