Symlink
buildah 掛載中符號連結的作用是什麼?
如果我像這樣執行 buildah 腳本,
ctr=$(buildah from alpine:3) mnt=$(buildah mount "$ctr") ln -sf "$PWD/foo" "$mnt/foo" buildah commit $ctr "myimage"
將創建的目錄連結到容器外嗎?
效果是您將
symlink
在文件系統命名空間內的掛載卷上創建一個指向$PWD/foo
容器上的。所以為了簡單起見,假設你
ln -sf "/root/bar" "$mnt/foo"
/foo
在容器內找到的符號連結將引用該目錄/root/bar
ln -sf "$PWD/foo" "$mnt/foo"
創建符號連結,而不是目錄;該符號連結在
$mnt
目錄中創建,被命名foo
(因此它最終將/foo
與容器圖像中一樣),並以文本形式儲存指向$PWD/foo
. 然後將符號連結儲存在容器映像中,並根據需要進行解包。連結連結到的位置取決於何時取消引用以及由誰取消引用。如果您在創建後立即訪問它,您將
$PWD/foo
在您的 shell 的目前文件系統命名空間中訪問。更一般地說,它將指向在訪問它時訪問它的程序的文件系統命名空間中的任何內容(如果有的話,在您執行上面的命令時$PWD/foo
具有’ 值)。$PWD
如果它被“在容器中”執行的程序取消引用,它將指向$PWD/foo
相應的文件系統命名空間。