Installing Docker

Docker is a software containerization platform (see What is Docker?). Its container images allow you to run software in a standardized environment (see What is a Container?). Thus, installing Docker ensures that the Coveo On-Premises Crawling Module runs smoothly, no matter your environment configuration.

If Docker is already installed and passes the tests in Validating the Installation, you may skip to Installing Maestro.

If you want to replace Docker Community Edition with Docker Enterprise Edition, keep in mind that uninstalling Docker is a risky operation that must be done with care.

If your Docker installation meets the requirements in Validating the Installation and is not currently causing any issues, Coveo recommends keeping your current setup.

Improper uninstallation can corrupt local data and force you to recreate your Crawling Module setup from scratch. If you understand the risks and want to proceed, make sure to follow the steps in Installing Docker Enterprise Edition.

  • If you prefer to install the Crawling Module on a virtual machine, Coveo provides installation steps for the following setups:

    While you can use a different virtual machine setup, Coveo cannot guarantee that Docker Enterprise Edition will install successfully on such a setup (see Installing Docker). See Validating the Installation to ensure Docker works correctly before installing the Crawling Module.

    Moreover, any server running the Crawling Module must have access to the content you want to index, regardless of whether the server is a virtual machine or not.

  • Coveo only supports the following installation method. If you want to install Docker your own way, keep in mind that the Coveo Support team offers assistance with the following installation method only.

For further information on using Docker and Coveo, see Docker FAQ.

Installing Docker Enterprise Edition

If you encounter issues during the installation process, see Troubleshooting Docker Installation Issues.

  1. Ensure that your environment meets the requirements (see Requirements).
  2. If you are replacing Docker Community Edition with Docker Enterprise Edition, follow these additional steps:
    1. If the Crawling Module was already installed, kill your worker and database containers. Then run the DeleteCrawlingModulesService.bat script to unregister the Crawling Module service.
    2. Run docker rm -f $(docker ps -aq) in an elevated PowerShell window to delete all Docker containers on the host. Run docker ps -a to validate that no containers are running.
    3. Uninstall Docker Community Edition.
  3. Optionally, when a proxy server is required for outbound communication, make sure to set your HTTP_PROXY and HTTPS_PROXY environment variables to the proxy server’s address, by running the following commands in an elevated Powershell window:
    1. [Environment]::SetEnvironmentVariable(“HTTP_PROXY”, “http://YOUR_HTTP_PROXY_ADDRESS:8080”, [EnvironmentVariableTarget]::Machine)
    2. [Environment]::SetEnvironmentVariable(“HTTPS_PROXY”, “https://YOUR_HTTPS_PROXY_ADDRESS:8080”, [EnvironmentVariableTarget]::Machine)
  4. Open an elevated PowerShell window and run the following commands:
    1. Install-Module DockerMsftProvider -Force
    2. Install-Package Docker -ProviderName DockerMsftProvider -Force
  5. Reboot the host.

Docker is registered as a service as part of the installation process and should start automatically.

You must now validate that Docker is adequately installed. Proceed to Validating your Docker installation.

Validating the Installation

It is essential to validate that Docker is properly installed before deploying the Crawling Module, as Crawling Module workers run in a Docker container.

To ensure that Docker is adequately installed, run the following tests in an elevated command prompt. If these fail, see Troubleshooting Docker Installation Issues.

  1. Run docker version to display the Docker client and Docker server configurations. Ensure that both the client and the server run in Windows mode ("OS/Arch": "windows/amd64") and that their Docker Version is identical.

  2. Run docker info and ensure that the HTTP_PROXY and HTTPS_PROXY parameters are correctly set, if applicable.

  3. Run docker run --rm microsoft/nanoserver:10.0.14393.2551 cmd /k echo Hello from Docker to start a container. You should get a Hello message from Docker. Once this is validated, run docker rmi microsoft/nanoserver:10.0.14393.2551 to clean up.

  4. Start the Docker swarm:

    1. Get your IPv4 address with ipconfig.
    2. Start the docker swarm with docker swarm init --advertise-addr {IP address}. You should get a response starting with Swarm initialized.
    3. Once the test is over, remove the swarm with docker swarm leave --force.

What’s Next?

Install Maestro to manage your workers (see Installing Maestro).