'docker run'修改图像状态吗?

时间:2015-08-19 19:43:33

标签: node.js selenium selenium-webdriver docker xvfb

我有一个使用ubuntu基本映像的Dockerfile,并使用apt-get和dpkg安装了一堆依赖项。然后它复制一些javascript文件并运行节点应用程序。节点应用程序生成子进程并执行xvfb-run selenium-standalone start

如果我使用--no-cache构建docker镜像并使用docker run -i -t <image id>运行它,我的应用程序将启动并立即连接到selenium服务器。如果我使用CTRL-C或docker stop <container id>杀死容器,然后运行与上面完全相同的docker run命令,我的应用程序正常启动,但无法连接到selenium服务器。如果我不管它,五分钟后,它会自行连接。每次运行docker run时,它都会以这种方式运行,直到我进行干净的图像构建。

更改节点源文件并主要从缓存重建不会改变此行为。我已经多次重复这个过程了,它总是一样的。

如果使用相同的图像,我无法弄清楚行为如何从一个docker run更改为下一个List。共享状态在哪里?

工作时记录:

  gulp run
  22:42:31.541 INFO - 启动一个独立的Selenium Server
  将系统属性webdriver.chrome.driver设置为/usr/lib/node_modules/selenium-standalone/.selenium/chromedriver/2.16-x64-chromedriver
  22:42:31.579 INFO - Java:Oracle Corporation 24.79-b02
  22:42:31.579 INFO - OS:Linux 3.18.5-tinycore64 amd64
  22:42:31.594 INFO - v2.46.0,Core v2.46.0。根据修订版87c69e2建造   22:42:31.676 INFO - 跳过驱动程序提供商org.openqa.selenium.ie.InternetExplorerDriver注册:   注册功能[{platform = WINDOWS,ensureCleanSession = true,browserName = internet explorer,version =}]与当前平台LINUX不匹配   22:42:31.676 INFO - 未找到驱动程序类:com.opera.core.systems.OperaDriver
  22:42:31.677 INFO - 驱动程序提供商com.opera.core.systems.OperaDriver未注册
  [22:42:31]使用gulpfile /opt/app/gulpfile.js
  [22:42:31]开始'跑'...
  [22:42:31]在1.29毫秒后完成'跑'   开始App。
  22:42:31.764 INFO - RemoteWebDriver实例应连接到:http://127.0.0.1:4444/wd/hub
  22:42:31.764 INFO - Selenium Server启动并运行
  Selenium开始了   2015-08-19T22:42:32.445Z在端口启动app:8000

不工作时的日志完全相同,只是错过了RemoteWebDriver,'Selenium Server启动并运行','Selenium已启动'。线。

1 个答案:

答案 0 :(得分:0)

尝试删除容器而不是停止它:

docker stop <container id>
docker rm <container id>