The Issue of the Day Before

進階使用 podman-掛載目錄

podman -

How

將主機上的目錄掛到容器中

> podman images
//REPOSITORY              TAG         IMAGE ID      CREATED     SIZE
//docker.io/library/node  18.16       c9e4d88ad304  2 days ago  1.02 GB

使用 --volume 參數

首先在主機上建立一個目錄,使用映像檔建立容器,再將該目錄掛到容器中。

> mkdir -p /home/podman/share_folder
> podman create \
--tty \
--name my_vol \
--privileged \ // (1)
--volume /home/podman/share_folder/:/home/node/share_folder/:Z \ // (2)
docker.io/library/node
  1. --privileged: 以 root 權限執行容器

  2. --volume: 或用 -v 將主機上的目錄掛到容器中 <source>:<target>:Z

podman create 只會建立容器,不會啟動容器,所以要先使用 podman start 啟動容器, 再使用 podman exec -it <CONTAINER ID or NAME> bash 進入容器。

> podman ps -a
//CONTAINER ID  IMAGE                         COMMAND     CREATED             STATUS                 PORTS       NAMES
//57fc05833972  docker.io/library/node:18.16  node        About an hour ago   Up About an hour ago               my_vol

> podman exec -it 57fc05833972 bash // (1)
root@57fc05833972:/# cd /home/node/share_folder/
root@57fc05833972:/# touch hello
root@57fc05833972:/# exit

> ls /home/podman/share_folder  // (2)
//drwxrwxr-x 2 root root 4096 Apr 16 05:34 .
//drwxr-xr-x 1 podman podman 4096 Apr 16 04:51 ..
//-rw-r--r-- 1 root root   12 Apr 16 05:34 hello
  1. 進入容器中並建立一個檔案。

  2. 檢查主機上的目錄,可以看到剛剛建立的檔案。

或是使用 --mount 參數

> podman run -dt --mount type=bind,source=/host/path,target=/container/path <IMAGE_NAME or ID>
閱讀在雲端