<!--- 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 -->

A docker container cannot be started with ip-bound port mappings when using both, ipv4 and ipv6 addresses:

With #46596, i expected 

    docker_container:
      name: "test123"
      image: "ubuntu:latest"
      tty: yes
      interactive: yes
      networks:
      - name: bridge
      purge_networks: yes
      pull: yes
      ports:
      - "127.0.0.1:53:53/tcp"
      - "127.0.0.1:53:53/udp"
      - "[::1]:53:53/tcp"
      - "[::1]:53:53/udp"

to behave like 

    docker run --rm -ti -p "127.0.0.1:53:53/tcp" -p "127.0.0.1:53:53/udp" -p "[::1]:53:53/tcp" -p "[::1]:53:53/udp" ubuntu:latest

    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                                                        NAMES
    3e7204cabfeb        ubuntu:latest       "/bin/bash"         2 seconds ago       Up 1 second         127.0.0.1:53->53/tcp, 127.0.0.1:53->53/udp, ::1:53->53/tcp, ::1:53->53/udp   awesome_banach

However, the deployment fails with 

    fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error starting container a26b2b9b2497195af25770878fd2c084e984e3d2c70bef602261cf76aad1a0bb: 500 Server Error: Internal Server Error (\"driver failed programming external connectivity on endpoint test123 (c41303e4e84c59d838166594918137135dfbd22e0bce311e3302f88135874d87): Error starting userland proxy: listen tcp 0.0.0.0:53: bind: address already in use\")"}

Note that is says `0.0.0.0:53`, which may be related to #40258. Removing the two IPv6 mappings works as expected.

From what i can see, the mapping is correctly parsed in 
`ansible.modules.cloud.docker.docker_container.TaskParameters._parse_publish_ports` - i suspect the error is in the passing to the docker-py module.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
docker_container

##### ANSIBLE VERSION
```
ansible 2.8.3
  config file = /home/johann/.ansible.cfg
  configured module search path = ['/home/johann/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.7/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.7.3 (default, Apr  3 2019, 05:39:12) [GCC 8.3.0]
```

##### CONFIGURATION
```
ANSIBLE_SSH_ARGS(/home/johann/.ansible.cfg) = -o ControlMaster=auto -o ControlPersist=60s -o ForwardAgent=yes -o ControlPath="/home/johann/.ansible/ansible-ssh-%h-%p-%r"
DEFAULT_HOST_LIST(/home/johann/.ansible.cfg) = ['/home/johann/dev/repos/ercpe-ansible/hosts']
DEFAULT_TRANSPORT(/home/johann/.ansible.cfg) = ssh
DEFAULT_VAULT_PASSWORD_FILE(/home/johann/.ansible.cfg) = /home/johann/bin/ansible-vault-pass
```

##### OS / ENVIRONMENT
Tested on Ubuntu 19.04 (disco)

##### STEPS TO REPRODUCE
See Summary

##### EXPECTED RESULTS
See Summary

##### ACTUAL RESULTS
See Summary

the image version in the registry does not match the container, the container will be
        recreated. Stop this behavior by setting C(ignore_image) to I(True).
      - I(Warning:) This option is ignored if C(image) or C(*) is used for the C(comparisons) option.
    type: bool
    default: no
    version_added: "2.2"
  image:
    description:
      - Repository path and tag used to create the container. If an image is not found or pull is true, the image
        will be pulled from the registry. If no tag is included, C(latest) will be used.
      - Can also be an image ID. If this is the case, the image is assumed to be available locally.
        The C(pull) option is ignored for this case.
    type: str
  init:
    description:
      - Run an init inside the container that forwards signals and reaps processes.
        This option requires Docker API >= 1.25.
    type: bool
    default: no
    version_added: "2.6"
  interactive:
    description:
      - Keep stdin open after a container is launched, even if not attached.
    type: bool
    default: no
  ipc_mode:
    description:
      - Set the IPC mode for the container. Can be one of 'container:<name|id>' to reuse another
        container's IPC namespace or 'host' to use the host's IPC namespace within the container.
    type: str