def initialize(options = {})
      set_docker_url! options
      @after_create      = options[:after_create]
      @after_start       = options[:after_start]
      @after_stop        = options[:after_stop]
      @volumes           = options[:volumes]
      @prestart          = options.fetch(:prestart, true)
      @container_options = options.select { |k,v| k =~ /\A[A-Z]/ }
    end
Initialize a new Docker API client.

options - Connection options.
:host   - IP or hostname to connect to (unless using Unix
socket).
:port   - TCP port to connect to (unless using Unix socket).
:socket - Path to local Unix socket (unless using host and
port).
:after_create - A proc that will be called after a container is created.
:after_start  - A proc that will be called after a container is started.
:after_stop   - A proc that will be called after a container stops.
:prestart - Start a new container after each `run_container` call.
:volumes  - A mapping of volumes to mount in the container. e.g.
if the Dockerfile has `VOLUME /work`, where the container will
write data, and `VOLUME /config` where read-only configuration
is, you might use
:volumes => {
"/config" => "/etc/shared-config",
"/work"   => "/data/work:rw",
}
`:volumes => { "/work" => "/home/localuser/work/to/do" }`
:Other - any option with a capitalized key will be passed on
to the 'create container' call. See https://docs.docker.com/engine/api/v1.40/#operation/ContainerCreate