2013-09-26 54 views
24

我有一個碼頭容器,我想用它來分割客戶端訪問數據庫。我希望每個客戶能夠擁有一個容器。如果我啓動容器的多個副本,它們都具有相同的名稱,唯一的區別是容器分配給的端口。如何複製和重命名Docker容器?

如何複製/重命名容器,以便我可以區分容器,而無需查閱與指定端口匹配的查找表以便與客戶端相匹配?

+0

我仍在尋找一種方法來重命名容器 – Kostanos

+0

這是[開放問題](https://github.com/docker/docker/issues/3036)。 – kojiro

+0

這應該是現在接受的答案:http://stackoverflow.com/a/28068308/1725096 –

回答

7

所有容器都有一個uniq名稱。當你做docker ps你可以看到第一列是ID。然後你可以用這個ID來操作你的容器。

實際上,你需要這個ID,以便在容器上進行任何操作(啓動/停止/檢查/等)

我不確定你正在嘗試做的,但對於每一個客戶,你可以啓動一個新的容器,然後將容器ID與您的用戶ID相鏈接。

目前,在Docker中沒有容器命名,所以你不能命名或重命名一個容器,你只能使用它的ID。

在將來的版本中,容器的命名將被實現。

+2

從Docker 0.6.5容器命名已實現,但不能爲現有容器提供名稱。我懷疑這不會被執行;只需停止容器並運行一個新的命名實例。 –

+2

「just」是一個黃鼠狼字。我有一個情況,我想在調試期間保留一個容器以供檢查,但想要在新的命名實例中反彈並重新啓動服務。我認爲在這種情況下我能做的至少是快照容器和rm,釋放用於新命名實例的名稱。 –

18

我使用碼頭工人1.0.1和以下允許我重命名影像:

docker tag 1cf76 myUserName/imageName:0.1.0 
+7

但圖像不是容器。 – kojiro

+0

@kojiro對,但容器永遠不會有友好的名字,是嗎?他們總是隨機的字符串。所以答案可能是「你不能 - 但你可以將它們保存爲可以給予友好名稱的圖像」。 –

+5

@RobinWinslow他們有友善的名字。請注意'--name'標誌,或'docker ps'輸出中最右邊的列。 – kojiro

33

docker rename命令是泊塢1.5的一部分。鏈接提交: docker github

+0

而不是輸入舊的(可能是隨機的)容器名稱,也可以使用給定容器ID的唯一開始,例如, 「碼頭重命名646新名稱」。 –