def run()

in container_agent/docker_client.py [0:0]


    def run(self,
            image=None,
            command=None,
            ports=None,
            name=None,
            volumes=None,
            env=None):
        """Start a new container.

        Args:
          image: container image to run
          command: command to run
          ports: ports to expose. list of (internal, external, proto) tuples.
                 external and proto is optional.

        Returns:
          "docker run -d" stdout output

        Example:
          run(image='busybox',
              command=['nc', '-p', '4711', '-lle', 'cat'],
              ports=[(7, 4711, tcp),
                     ('1.2.3.4', 7, 4711, tcp)],
              name='netcat-echo')

        """

        log.debug('run_daemon %s', image)
        assert image
        ports = ports or []
        command = command or []
        args = []
        if ports:
            args.extend(self.__port_arg(*port) for port in ports)
        if name:
            args.append('--name=%s' % (name, ))
        if volumes:
            args.extend('--volume=%s' % (volume, ) for volume in volumes)
        if env:
            args.extend('--env=%s' % (env, ) for env in env)
        args.append(image)
        args.extend(command)
        return self.cli_check('run', '-d', *args).strip()