Docker DNS issue with minio server and wordpress

Updated: Feb 10, 2025

Docker DNS issue with minio server and wordpress

Docker DNS issues can occur when trying to access services running in separate containers using their container names or container IP addresses. In the context of a Docker environment with Minio server and WordPress, the issue might manifest as WordPress being unable to connect to the Minio server to upload media files.

To troubleshoot this issue, follow these steps:

  1. Check Docker network settings: Make sure that the containers are connected to the same network. By default, Docker creates a bridge network named "bridge" when you start a container. You can check the network settings using the following command:

    docker network ls
    

    Ensure that both the Minio server and WordPress containers are connected to the same network.

  2. Verify container names and IP addresses: To find the container names and IP addresses, use the following commands:

    docker ps -a
    

    Look for the container names and IP addresses of the Minio server and WordPress containers.

  3. Configure WordPress to use container IP address: If WordPress is unable to connect to the Minio server using the container name, you can configure WordPress to use the container IP address instead.

    Edit the wp-config.php file in the WordPress container and add the following lines:

    define('FS_METHOD', 'local');
    define('WP_CONTENT_DIR', '/var/www/html');
    define('WP_CONTENT_URL', 'http://wordpress:80/wp-content');
    define('UPLOAD_PATH', '/var/www/html/wp-content/uploads');
    define('UPLOAD_URL', 'http://wordpress:80/wp-content/uploads');
    
    // Minio server configuration
    define('MINIO_ACCESS_KEY', 'your_minio_access_key');
    define('MINIO_SECRET_KEY', 'your_minio_secret_key');
    define('MINIO_HOST', 'minio:9000');
    define('MINIO_USE_SSL', false);
    define('MINIO_BUCKET', 'your_minio_bucket_name');
    

    Replace your_minio_access_key, your_minio_secret_key, and your_minio_bucket_name with the appropriate values for your Minio server.

    Update the .htaccess file in the WordPress container to allow external file access:

    <allow from all>
    
  4. Configure Minio server to use a fixed IP address: To ensure that the Minio server always uses the same IP address, you can assign a fixed IP address to the container.

    Edit the docker-compose.yml file in the root directory of your project and add the following lines to the Minio server service configuration:

    networks:
      - my_network
    ip_address: 172.17.0.2
    

    Replace 172.17.0.2 with a fixed IP address of your choice.

    Save and close the file.

  5. Restart the containers: Restart both the Minio server and WordPress containers to apply the changes:

    docker-compose down
    docker-compose up -d
    

    Verify that WordPress can now connect to the Minio server by attempting to upload a media file.