<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def run(self, bundle,
              container_id=None,
              log_path=None,
              pid_file=None,
              log_format="kubernetes"):

    ''' run is a wrapper to create, start, attach, and delete a container.

        Equivalent command line example:      
          singularity oci run -b ~/bundle mycontainer

        Parameters
        ==========
        bundle: the full path to the bundle folder
        container_id: an optional container_id. If not provided, use same
                      container_id used to generate OciImage instance
        log_path: the path to store the log.
        pid_file: specify the pid file path to use
        log_format: defaults to kubernetes. Can also be "basic" or "json"
    '''
    return self._run(bundle,
                     container_id=container_id,
                     log_path=log_path,
                     pid_file=pid_file,
                     command="run",
                     log_format=log_format)