2016-05-17 31 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 –