We're trying to fix as many broken links as possible before modules move into collections.  This is the batch of broken links on docker modules.

NOTE: the link checker sometimes reports an error where a link actually works. Ignore those if you find them.

##### ISSUE TYPE
- Documentation Report

##### COMPONENT NAME
<!--- Write the short name of the rst file, module, plugin, task or feature below, use your best guess if unsure -->
docs.ansible.com

###### BROKEN LINKS
https://docs.ansible.com/ansible/devel/modules/docker_compose_module.html#docker-compose-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_image_module.html#docker-image-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_config_module.html#docker-config-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_container_info_module.html#docker-container-info-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_host_info_module.html#docker-host-info-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_image_info_module.html#docker-image-info-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_login_module.html#docker-login-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_network_module.html#docker-network-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_network_info_module.html#docker-network-info-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_node_module.html#docker-node-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_node_info_module.html#docker-node-info-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_prune_module.html#docker-prune-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_secret_module.html#docker-secret-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_swarm_module.html#docker-swarm-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_swarm_info_module.html#docker-swarm-info-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_swarm_service_module.html#docker-swarm-service-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_swarm_service_info_module.html#docker-swarm-service-info-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_volume_module.html#docker-volume-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

https://docs.ansible.com/ansible/devel/modules/docker_volume_info_module.html#docker-volume-info-module
├─BROKEN─ https://docker-py.readthedocs.io/en/stable/machine/ 

def __init__(self, module):
        super(PrivateKeyPyOpenSSL, self).__init__(module)
        if module.params['type'] == 'RSA':
            self.type = crypto.TYPE_RSA
        elif module.params['type'] == 'DSA':
            self.type = crypto.TYPE_DSA
        else:
            module.fail_json(msg="PyOpenSSL backend only supports RSA and DSA keys.")
        if self.format != 'auto_ignore':
            module.fail_json(msg="PyOpenSSL backend only supports auto_ignore format.")
    def _generate_private_key(self):
        """(Re-)Generate private key."""
        self.privatekey = crypto.PKey()
        try:
            self.privatekey.generate_key(self.type, self.size)
        except (TypeError, ValueError) as exc:
            raise PrivateKeyError(exc)
    def _get_private_key_data(self):
        """Return bytes for self.privatekey"""
        if self.cipher and self.passphrase:
            return crypto.dump_privatekey(crypto.FILETYPE_PEM, self.privatekey,
                                          self.cipher, to_bytes(self.passphrase))
        else:
            return crypto.dump_privatekey(crypto.FILETYPE_PEM, self.privatekey)
    def _get_fingerprint(self):