Stdout

輸出到 podman create 中指定的命令在哪裡?

  • November 21, 2020

如果我用 來創建一個容器podman create,我似乎找不到任何一系列選項來顯示我正在執行的命令的輸出。例如,這裡我們可以執行一個帶有“Hello World”的容器

$ podman run alpine:3 /bin/echo "Hello World"
Hello World

但是,如果我將其更改為

$ ctr=$(podman create alpine:3 /bin/echo "Hello World")
$ podman start $ctr

沒有任何東西輸出到螢幕上,狀態確實顯示Exited

CONTAINER ID  IMAGE                            COMMAND               CREATED         STATUS                       PORTS                   NAMES
cc31f5a3cc95  docker.io/library/alpine:latest  /bin/echo Hello W...  14 seconds ago  Exited (0) 14 seconds ago                            modest_raman

我嘗試了不同的選項podman create,包括-t-i-ti,都具有相同的效果。輸出到哪裡去?

ctr=$(podman create -ti alpine:3 /bin/echo "[ti] Hello World")
podman start $ctr

ctr=$(podman create -t alpine:3 /bin/echo "[t] Hello World")
podman start $ctr

ctr=$(podman create -i alpine:3 /bin/echo "[i]Hello World")
podman start $ctr

我也試過podman start -i(雖然此時我只是變得絕望)

除了狀態,podman run將啟動容器附加

$ podman run alpine:3 /bin/echo "Hello World"
Hello World

但是,podman start啟動它們detached,但它提供以下選項,

--attach,-a附加容器的STDOUTSTDERR. 預設值為假。啟動多個容器時不能使用此選項。

所以你只需要

ctr=$(podman create alpine:3 /bin/echo "Hello World")
podman start --attach $ctr

引用自:https://unix.stackexchange.com/questions/620893