<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
<!--- Explain the problem briefly below -->

When using docker_container module, attempting to publish a port, using a range of ports from the host, does not work as expected. Instead, Ansible will attempt to use the port number in the range.

Example:

Trying to get a similar docker command as the following running in Ansible.

```
docker run -p 80-85:80 -d linuxserver/nginx
```

As of now, this will cause an error stating `Bind for 0.0.0.0:80 failed: port is already allocated"`

This is a supported command argument in Docker. 

Ref: https://docs.docker.com/network/links/

> Instead, you may specify a range of host ports to bind a container port to that is different than the default ephemeral port range:
>
> `$ docker run -d -p 8000-9000:5000 training/webapp python app.py`


##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
docker_container

##### ANSIBLE VERSION

<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
(venv) ➜  cloudbox git:(develop) ✗ ansible --version
ansible 2.10.0.dev0
  config file = /srv/git/cloudbox/ansible.cfg
  configured module search path = [u'/home/seed/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /opt/ansible/lib/ansible
  executable location = /opt/ansible/bin/ansible
  python version = 2.7.15+ (default, Oct  7 2019, 17:39:04) [GCC 7.4.0]
```

```
cloudbox git:(develop) ✗ ansible --version
ansible 2.9.2
  config file = /srv/git/cloudbox/ansible.cfg
  configured module search path = [u'/home/seed/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.15+ (default, Oct  7 2019, 17:39:04) [GCC 7.4.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
DEFAULT_CALLBACK_WHITELIST(/srv/git/cloudbox/ansible.cfg) = [u'profile_tasks']
DEFAULT_FACT_PATH(/srv/git/cloudbox/ansible.cfg) = /srv/git/cloudbox/ansible_facts.d
DEFAULT_HASH_BEHAVIOUR(/srv/git/cloudbox/ansible.cfg) = merge
DEFAULT_HOST_LIST(/srv/git/cloudbox/ansible.cfg) = [u'/srv/git/cloudbox/inventories/local']
DEFAULT_LOG_PATH(/srv/git/cloudbox/ansible.cfg) = /srv/git/cloudbox/cloudbox.log
DEFAULT_ROLES_PATH(/srv/git/cloudbox/ansible.cfg) = [u'/srv/git/cloudbox/roles', u'/srv/git/cloudbox/resources/roles']
DEFAULT_VAULT_PASSWORD_FILE(/srv/git/cloudbox/ansible.cfg) = /etc/ansible/.ansible_vault
RETRY_FILES_ENABLED(/srv/git/cloudbox/ansible.cfg) = False
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Ubuntu 18.04 LTS. Bare-metal setup

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml
- hosts: localhost
  tasks:
    - name: Create and start container
      docker_container:
        name: nginx
        image: linuxserver/nginx
        pull: yes
        published_ports:
          - "80-85:80"
        networks:
          - name: cloudbox
            aliases:
              - nginx2
        purge_networks: yes
        restart_policy: unless-stopped
        state: started
    - name: Create and start container
      docker_container:
        name: nginx2
        image: linuxserver/nginx
        pull: yes
        published_ports:
          - "80-85:80"
        networks:
          - name: cloudbox
            aliases:
              - nginx3
        purge_networks: yes
        restart_policy: unless-stopped
        state: started

```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
Containers nginx2 and nginx3 to be created and binded to whatever host port was available between 80 and 85.

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->
https://pastebin.com/MxMrGaHm

Both containers are being binded to port 80 on the host.
output = "Cannot retrieve result as auto_remove is enabled"
                    if self.parameters.output_logs:
                        self.client.module.warn('Cannot output_logs if auto_remove is enabled!')
                else:
                    config = self.client.inspect_container(container_id)
                    logging_driver = config['HostConfig']['LogConfig']['Type']
                    if logging_driver in ('json-file', 'journald'):
                        output = self.client.logs(container_id, stdout=True, stderr=True, stream=False, timestamps=False)
                        if self.parameters.output_logs:
                            self._output_logs(msg=output)
                    else:
                        output = "Result logged using `%s` driver" % logging_driver
                if status != 0:
                    self.fail(output, status=status)
                if self.parameters.cleanup:
                    self.container_remove(container_id, force=True)
                insp = self._get_container(container_id)
                if insp.raw:
                    insp.raw['Output'] = output
                else:
                    insp.raw = dict(Output=output)
                return insp
        return self._get_container(container_id)
    def container_remove(self, container_id, link=False, force=False):
        volume_state = (not self.parameters.keep_volumes)
        self.log("remove container container:%s v:%s link:%s force%s" % (container_id, volume_state, link, force))
        self.results['actions'].append(dict(removed=container_id, volume_state=volume_state, link=link, force=force))
        self.results['changed'] = True
        response = None
        if not self.check_mode: