2016-05-17 71 views
1

我想知道是否有方法來檢查啓動容器的「docker run」命令?Docker - 從圖像檢索命令行

因爲我想添加一些參數到停止的容器,我需要檢索原始命令,添加我的新參數並啓動它。

謝謝你的幫助。

+0

還是有辦法做到的一種: 泊塢窗重啓 - my-options-here

+0

'docker檢查'? – BMW

回答

1

如果您想要更改的唯一一件事是重新啓動策略,您現在可以(在docker引擎1.11中)使用docker-update。搬運工更新可以應用到任何一個運行或停止的容器,見人搬運工更新,如:

# docker update --restart=unless-stopped containername 

一些有用的信息是在泊塢窗PS,尤其是端口映射,例如輸出可供選擇:

# docker ps 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS     NAMES 
75d1e6adbb37  my-fancy-image  "/usr/sbin/sshd -D" 22 hours ago  Up 22 minutes  0.0.0.0:8022->22/tcp fancy_torvalds 

其他所有的命令行用來啓動容器參數可以在泊塢窗的輸出被發現檢查,如:

# docker inspect containername 
    ... 
    "Path": "/usr/sbin/sshd", 
    "Args": [ 
     "-D" 
    ], 
    ... 
    "HostConfig": { 
     "Binds": [ 
      "/home/user/workspace/thing:/home/other/workspace/thing" 
     ], 
    ... 
     "PortBindings": { 
      "22/tcp": [ 
       { 
        "HostIp": "", 
        "HostPort": "8022" 
       } 
      ] 
     }, 
     "RestartPolicy": { 
      "Name": "unless-stopped", 
      "MaximumRetryCount": 0 
     }, 
    ... 

如果它不只是你灣重新啓動策略要更改(並且您的容器中有應用程序數據),可以將容器保存爲圖像,然後將其作爲新容器運行。這應該不會使用大量的額外磁盤空間。您不需要將其推送到任何存儲庫:

# docker commit -m="Message" -a="Author Name" containername username/imagename:latest 
# docker run <new options here> username/imagename:latest 

我必須質疑您爲什麼要這麼做。你是否將所有的應用程序數據都包含在與應用程序本身相同的容器中,這使你不願意僅僅刪除容器並用你喜歡的選項創建一個新的容器?有很多關於這個問題的討論優異被發現,特別是:

+0

因爲我懶惰:)不,嚴重的是這只是一個問題,我自己面對一個容器,我幾周前開始用一長串冗長的無聊參數,我沒有保存在某個地方。我只想用重啓策略重啓它。 反正謝謝;) –

+0

不夠公平。看起來像碼頭更新是你的事情 - 如果你在發動機1.11 –