当前位置: 首页 > 知识库问答 >
问题:

尝试启动具有端口和卷配置的selenium/standalone chrome docker容器

东郭赞
2023-03-14

我尝试自动启动(使用python脚本)selenium/standalone chrome的docker容器实例失败。

使用SSH命令行,我可以使用正确的配置启动selenium/standalone-chrome:docker run-d-p 4444:4444-v/dev/shm:/dev/shm selenium/standalone-chrome

但是,如何通过python脚本传递端口设置(4444)和卷设置(/dev/shm:/dev/shm)?

这是我的python脚本:

import docker
def toggle_selenium():

    client = docker.from_env()
    
    #Check if there are Selenium containers
    if client.containers.list(filters={'ancestor':'selenium/standalone-chrome'})==[]:
        # Then run a selenium container
        container = client.containers.run('selenium/standalone-chrome',detach=True, auto_remove=True)
        if client.containers.get(container.id).status == 'running':
            print('{:<47s} : {}'.format('Container '+ container.name ,'Running'))
            return()
    else:
        # Stop all running Selenium containers
        for i in client.containers.list(filters={'ancestor':'selenium/standalone-chrome'}):
            i.stop()
            print('{:<47s} : {}'.format('Container '+ i.name ,'Stopped'))
        client.containers.prune()
        print('{:<47s} : {}'.format('Container status','All stopped'))
        return()
        
if __name__ == '__main__':
    toggle_selenium()

共有1个答案

贡正诚
2023-03-14

我通过参考Docker SDK文档解决了这个问题。

        container = client.containers.run('selenium/standalone-chrome',
                                          detach=True,
                                          auto_remove=True,
                                          ports={'4444/tcp':('127.0.0.1',4444)},
                                          volumes = {'/dev/shm':{'bind':'/dev/shm','mode':'rw'}})

 类似资料:
  • 问题内容: 我了解您可以使用scale命令来使用docker-compose来旋转多个容器。但是,它们都将具有相同的配置。 是否可以在同一主机上以同一配置(不同文件)启动容器的容器? 使用以下命令: 只有容器会运行,这不是我想要的。 - 编辑 - 当我尝试运行两个命令时,将发生以下情况。 我和这个样子的: 问题答案: 您需要做的就是更改项目名称。默认情况下,compose使用基于当前目录命名的项目

  • 问题内容: 我有一套可以在Firefox和Chrome中完美运行的自动化程序,并且我也想启动IEDriver实例。 我已经按照Selenium的Google Code Wiki 设置了IEDriver ,并使用了正确的路径(如果更改路径,则会得到不同的异常,因此这是绝对正确的)。但是由于某种原因,它仍然无法启动,只是超时了。 启动它的代码(最后一行引发异常): 唯一的例外是: 问题答案: 我遇到了

  • 问题内容: 尝试在ipython Notebook中使用Selenium打开Firefox时出现错误。我环顾四周,发现了类似的错误,但没有与我得到的错误完全匹配的错误。有人知道问题可能是什么以及我如何解决?我正在使用Firefox 22。 我输入的代码如下: 代码返回的错误如下: 问题答案: 尝试在初始化时指定Firefox二进制文件 FirefoxDriver查找的默认路径为。参见Firefox

  • 我的系统是LinuxMint18.3。Java版本“1.8.0_161”。当我使用命令“java-jar jenkins.war”启动jenkins时,一切正常。当我让詹金斯进入tomcat时,一切顺利。但当我试图使用命令“java-jar jenkins.war--httpPort=9090”启动jenkins时,我遇到了错误。你能帮我找到原因吗?

  • 我刚下载了这个项目: 但当我尝试使用推荐的命令运行服务器时: 我得到以下输出: 如你所见,有一行是这样写的:

  • 描述: 配置为侦听端口80的Tomcat连接器无法启动。端口可能已在使用中,或者连接器配置错误。 行动: 运行Sencha客户端(在目录内) 并将Spring Boot端口更改为8082: