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/ 

if not os.path.isdir(base_dir):
        module.fail_json(
            name=base_dir,
            msg='The directory %s does not exist or the file is not a directory' % base_dir
        )
    backend = module.params['select_crypto_backend']
    if backend == 'auto':
        
        can_use_cryptography = CRYPTOGRAPHY_FOUND and CRYPTOGRAPHY_VERSION >= LooseVersion(MINIMAL_CRYPTOGRAPHY_VERSION)
        can_use_pyopenssl = PYOPENSSL_FOUND and PYOPENSSL_VERSION >= LooseVersion(MINIMAL_PYOPENSSL_VERSION)
        
        if module.params['cipher'] and module.params['passphrase'] and module.params['cipher'] != 'auto':
            
            if can_use_pyopenssl:
                backend = 'pyopenssl'
            elif can_use_cryptography:
                backend = 'cryptography'
        else:
            
            if can_use_cryptography:
                backend = 'cryptography'
            elif can_use_pyopenssl:
                backend = 'pyopenssl'
        
        if backend == 'auto':
            module.fail_json(msg=("Can't detect any of the required Python libraries "
                                  "cryptography (>= {0}) or PyOpenSSL (>= {1})").format(
                                      MINIMAL_CRYPTOGRAPHY_VERSION,
                                      MINIMAL_PYOPENSSL_VERSION))
    try: