<!--- 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.
type: dict
    version_added: 2.4
  user:
    description:
      - Sets the username or UID used and optionally the groupname or GID for the specified command.
      - "Can be of the forms C(user), C(user:group), C(uid), C(uid:gid), C(user:gid) or C(uid:group)."
    type: str
  uts:
    description:
      - Set the UTS namespace mode for the container.
    type: str
  volumes:
    description:
      - List of volumes to mount within the container.
      - "Use docker CLI-style syntax: C(/host:/container[:mode])"
      - "Mount modes can be a comma-separated list of various modes such as C(ro), C(rw), C(consistent),
        C(delegated), C(cached), C(rprivate), C(private), C(rshared), C(shared), C(rslave), C(slave), and
        C(nocopy). Note that the docker daemon might not support all modes and combinations of such modes."
      - SELinux hosts can additionally use C(z) or C(Z) to use a shared or private label for the volume.
      - "Note that Ansible 2.7 and earlier only supported one mode, which had to be one of C(ro), C(rw),
        C(z), and C(Z)."
    type: list
    elements: str
  volume_driver:
    description:
      - The container volume driver.
    type: str
  volumes_from:
    description:
      - List of container names or IDs to get volumes from.