2017-10-05 36 views
1

我發誓我已經使用了一個選項前一段時間你可以啓動一個容器,然後在下一個泊塢窗命令你可以做一些與該容器沒有明確提到其ID或別名 - 它是「容器列表中的第一個容器」或「最近創建的容器」。但是我在Google上找不到任何東西。Docker exec命令在最近的容器沒有複製和粘貼ID

我的想象力被召回是這樣的:

docker run --detach -it ubuntu:latest 
docker exec -it {0} bash 

是否有這樣的事情嗎?當你想與某人分享指令時,這個功能非常有用,可以讓他們不需要複製和粘貼(或鍵入)任何特定容器ID。

+1

如果你想引用它,那麼你應該給它一個名字,特別是如果你想教別人 –

+1

'-name whatever'作爲碼頭運行的最後一個參數,那麼下一行的'$ _'? –

+0

這兩個好的答案(雖然你能解釋'$ _'是什麼嗎?我在理解搜索時的解釋方面有困難 –

回答

1

收集了幾種解決方案,這裏有一些方法(隨時更新與你的答案):

硬編碼容器名稱

這可能是最緊湊的解決方案

docker run --detach --name my_container -it ubuntu:latest 
docker exec -it my_container bash 

獲取您最近創建的碼頭集裝箱ID

這是我一直在回憶的那個。

docker run --detach -it ubuntu:latest 
docker exec -it $(docker ps --latest --quiet) bash 

使用可變

一個殼,我不完全理解$_怎麼會在這種情況下幫助所以不能舉一個例子。

更容易引用

其他提示您不必複製整個ID。如果您輸入a作爲容器標識,它將查找以該字符序列開頭的容器。如果有多個匹配,並且該命令可以接受多個容器ID,它仍然可以工作(例如,docker kill a將殺死所有以字母a開頭的ID的容器)