How to run Multilogin 6 in a Docker container
In this guide, we’ll walk you through setting up and launching Multilogin 6 inside a Docker container. Docker makes it easy to deploy applications consistently across different environments.
Why use Docker for Multilogin?
Docker allows you to:
- Run Multilogin 6 on any system that supports Docker, including local machines and cloud environments
- Maintain portability and scalability for automation needs
- Use headless mode for running on remote hosts
Before you start
Make sure you have:
- A system that can run Docker (cloud, server, VM, or your computer)
- A Docker Hub account to download required images
- A Multilogin 6 account to use the app inside your container
Step 1: install Docker
If you don’t have Docker yet, install it for your OS:
Docker Engine is designed to run directly on Linux. For other operating systems like Windows or macOS you'll need to use Docker Desktop.
Step 2: build a Dockerfile
To create a container, you’ll need a Dockerfile in your project directory. This file configures the container.
Example Dockerfile
# Use an official base image with a compatible OS
FROM ubuntu:22.04
# List of basic dependancies
RUN apt-get update && apt-get install -y ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libc6 libcairo2 libcups2 libcurl4 libdbus-1-3 libdrm2 libexpat1 libgbm1 libglib2.0-0 libgtk-4-1 libnspr4 libnss3 libpango-1.0-0 libu2f-udev libvulkan1 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 wget xdg-utils
# Dependancies to install and launch Multilogin application
RUN apt-get update && DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install -y openjdk-18-jre-headless curl unzip openssh-client
# Set environment variables for Multilogin login
ENV ML_USERNAME="your_multilogin_username"
ENV ML_PASSWORD="your_multilogin_password"
# Install Multilogin app
RUN mkdir -p /opt/multilogin/
RUN cd /opt/multilogin/ && \
curl --location --fail --output multiloginapp-linux-x64-client "https://cdn-download.multiloginapp.com/multilogin/6.3.6/multilogin-6.3.6-1-linux_x86_64.zip" && \
unzip multiloginapp-linux-x64-client && \
chmod +x multiloginapp-linux-x64-client && \
rm multiloginapp-linux-x64-client && \
apt-get -y install ./multilogin.deb
# Copy our main run script into workdir
COPY ./run.sh /opt/Multilogin/
# Add permission to execute and run our script
RUN chmod +x /opt/Multilogin/run.sh
CMD bash /opt/Multilogin/run.sh
Special case: M1 Mac users
If you're using an M1 Mac (arm64 architecture), you’ll need to enable the Docker Buildx experimental feature to build the container properly.
Step 3: handle login credentials
Since Dockerfile CMD instructions don’t support login parameters, you need a run.sh
file in the same directory.
Example run.sh
script
#!/bin/bash
echo "Multilogin account is $ML_USERNAME with password of length ${#ML_PASSWORD}"
cd opt/Multilogin/headless
bash ./cli.sh -login -u "$ML_USERNAME" -p "$ML_PASSWORD"
bash ./headless.sh -port 35000
Store your credentials securely instead of hard-coding them in scripts.
Step 4: run a Docker container
Now that your Dockerfile is set up, it’s time to build and run your container.
Build the Docker container
Make sure your Docker daemon is running, then navigate to your Dockerfile directory and run:
docker build -t multilogin-container .
Run the container
To start the container in your environment, use:
docker run -d --name multilogin-app -p <host_port>:<container_port> multilogin-container
Replace <host_port>
and <container_port>
with the desired port numbers to enable HTTP request access.
Run in headless mode
Multilogin 6 doesn’t support headless mode natively. To solve this, use a virtual display like Xvfb
inside your run.sh
script.