## 🐛 Bug Report
There is no way to provide max-sessions parameter in the docker section of the standalone config file


## To Reproduce

My grid config looks as follows. Is there a way to limit the number of sessions available for both Firefox and Chrome in the docker section of standalone config file
```[toml]
[node]
detect-drivers = false
max-sessions=4

[docker]
configs = ["selenium/standalone-chrome:latest", "{\"browserName\": \"chrome\", \"browserVersion\": \"91\"}", "selenium/standalone-firefox:latest", "{\"browserName\": \"firefox\", \"browserVersion\": \"89\"}"]
host = "localhost"
port = 2375
url = "unix:/var/run/docker.sock"
video-image = "selenium/video:latest"
```

Running this command `java -jar selenium-server-4.0.0-beta-4.jar standalone --config grid.config.toml` creates 12 sessions each of Chrome and Firefox with a max concurrency of 4

![image](https://user-images.githubusercontent.com/17963268/126071586-743c2f2a-3ed3-4299-b8bf-1512c70d1f12.png)

In the file https://github.com/SeleniumHQ/selenium/blob/941dc9c6b2e2aa4f701c1b72be8de03d4b7e996a/java/server/src/org/openqa/selenium/grid/docker/DockerOptions.java#L137

 we have initialised it to the # of availableProcessors

whereas in the file https://github.com/SeleniumHQ/selenium/blob/941dc9c6b2e2aa4f701c1b72be8de03d4b7e996a/java/server/src/org/openqa/selenium/grid/node/config/NodeOptions.java#L79

we take into consideration the value available in the node section of the config file

## Expected behavior

There should be a config to set max-sessions in the docker section

## Test script or set of commands reproducing this issue

## Environment

Selenium Grid version (if applicable): selenium-server-4.0.0-beta-4

info.isPresent()));
      }
      LOG.info(String.format(
        "Mapping %s to docker image %s %d times",
        caps,
        name,
        maxContainerCount));
    });
    return factories.build().asMap();
  }
  private Image getVideoImage(Docker docker) {
    String videoImage = config.get(DOCKER_SECTION, "video-image").orElse(DEFAULT_VIDEO_IMAGE);
    return docker.getImage(videoImage);
  }
  @SuppressWarnings("OptionalUsedAsFieldOrParameterType")
  private String getDockerNetworkName(Optional<ContainerInfo> info) {
    if (info.isPresent()) {
      return info.get().getNetworkName();
    }
    return DEFAULT_DOCKER_NETWORK;
  }
  @SuppressWarnings("OptionalUsedAsFieldOrParameterType")
  private DockerAssetsPath getAssetsPath(Optional<ContainerInfo> info) {
    if (info.isPresent()) {
      Optional<Map<String, Object>> mountedVolume = info.get().getMountedVolumes()
        .stream()
        .filter(
          mounted ->
            DEFAULT_ASSETS_PATH.equalsIgnoreCase(String.valueOf(mounted.get("Destination"))))
        .findFirst();