如何在 Docker 容器中运行Multilogin 6
在本指南中,我们将引导您在 Docker 容器内设置和启动Multilogin 6。Docker 可让您轻松地在不同环境中一致地部署应用程序。
为什么在 Docker 运行Multilogin?
Docker 可以让你:
- 在任何支持 Docker 的系统上运行Multilogin 6,包括本地机器和云环境
- 保持可移植性和可扩展性以满足自动化需求
- 使用headless模式在远程主机上运行
开始之前
确保您已拥有:
- 可以运行 Docker 的系统(云、服务器、VM 或您的计算机)
- 一个Docker Hub帐户,用于下载所需的图像
- 一个Multilogin 6账户,用于在容器内使用该应用程序
步骤 1:安装 Docker
如果你还没有 Docker,请为你的操作系统安装它:
Docker Engine 设计为直接在Linux上运行。对于Windows或macOS等其他操作系统,您需要使用 Docker Desktop。
第 2 步:构建 Dockerfile
要创建容器,您需要在项目目录中创建一个Dockerfile 。此文件用于配置容器。
示例 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
特殊情况:M1 Mac 用户
如果您使用的是M1 Mac(arm64 架构) ,则需要启用 Docker Buildx 实验功能才能正确构建容器。
步骤 3:登录凭证设置
由于Dockerfile CMD指令不支持登录凭证,因此需要在同一目录中有一个run.sh
文件。
示例run.sh
脚本
#!/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
请安全谨慎地存储您的登录凭证,而不是仅仅在脚本中设置它们。
步骤 4:运行 Docker 容器
现在您的Dockerfile已设置完毕,是时候构建并运行您的容器了。
构建 Docker 容器
确保您的 Docker 守护程序正在运行,然后导航到您的Dockerfile目录并运行:
docker build -t multilogin-container
运行 Docker 容器
要在您的环境中启动 Docker 容器,请使用:
docker run -d --name multilogin-app -p <host_port>:<container_port> multilogin-container
将<host_port>
和<container_port>
替换为所需的端口号以启用HTTP请求访问。
以headless模式运行
Multilogin 6 本身不支持headless模式。要解决此问题,请在run.sh
脚本中使用类似Xvfb
的虚拟显示器。