You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在搭载Apple Silicon M1 Pro的MacOS上通过Docker运行带GUI的Linux版Chrome

解决Apple Silicon M1 Pro上Docker构建Linux Chrome的签名错误及GUI运行问题

问题根源

在Apple Silicon(arm64)架构上跨平台构建amd64的Ubuntu 24.04镜像时,apt仓库的GPG签名验证失败,导致apt-get update执行终止。这是因为模拟amd64环境下,系统默认的GPG密钥无法正确验证Ubuntu仓库的签名。

修复后的Dockerfile

修改Dockerfile以解决签名问题并适配跨架构构建:

# 指定架构为amd64,适配Apple Silicon跨平台构建
FROM --platform=linux/amd64 ubuntu:24.04

# 修复Ubuntu仓库签名问题,更新GPG密钥
RUN apt-get update --allow-insecure-repositories && \
    apt-get install -y --allow-unauthenticated gnupg2 && \
    rm -rf /var/lib/apt/lists/* && \
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C

# 安装依赖包
RUN apt-get update && apt-get install -y \
    wget \
    software-properties-common \
    libx11-xcb1 \
    libxcomposite1 \
    libxcursor1 \
    libxdamage1 \
    libxrandr2 \
    libgbm1 \
    libasound2 \
    libatk1.0-0 \
    libatk-bridge2.0-0 \
    libcups2 \
    libdrm2 \
    libnspr4 \
    libnss3 \
    libxss1 \
    libxtst6 \
    fonts-liberation \
    xdg-utils \
    libu2f-udev \
    x11-apps \
    sudo \
    && rm -rf /var/lib/apt/lists/*

# 添加Google Chrome仓库并安装
RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \
    && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list' \
    && apt-get update \
    && apt-get install -y google-chrome-stable \
    && rm -rf /var/lib/apt/lists/*

# 创建普通用户并配置sudo权限
RUN useradd -m -s /bin/bash chrome \
    && echo "chrome ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

USER chrome

# X11转发环境变量
ENV DISPLAY=host.docker.internal:0
ENV XAUTHORITY=/home/chrome/.Xauthority

ENTRYPOINT ["google-chrome", "--no-sandbox"]

关键修改点:

  • 启动时指定--platform=linux/amd64,明确构建amd64架构镜像
  • 先修复Ubuntu仓库的GPG密钥,解决签名验证失败问题
  • 增加Chrome启动参数--no-sandbox,规避容器内权限限制

构建镜像

执行以下命令构建镜像:

docker build -t chrome-container .

配置MacOS GUI转发并运行容器

  1. 安装XQuartz:下载安装XQuartz,启动后在「偏好设置-安全性」中勾选「允许来自网络客户端的连接」,重启XQuartz。
  2. 允许本地X11访问:在终端执行:
xhost +localhost
  1. 启动容器:执行以下命令运行Chrome:
docker run -it --rm \
    --platform=linux/amd64 \
    -e DISPLAY=host.docker.internal:0 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    chrome-container

内容的提问来源于stack exchange,提问作者Alok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 15:44:55