1. 获取 firefox 镜像
在注册表搜索 jlesage/firefox,并且下载
2. 创建容器
运行映像 jlesage/firefox,开始创建容器
3. 配置容器
启用自动重新启动,重点配置存储空间和环境变量,其他默认。
创建文件夹,及子文件夹。挂载路径如下:
/config
/config/downloads
/usr/share/fonts/other
环境变量配置删除 INSTALL_PACKAGES、PACKAGES_MIRROR 和 FF_CUSTOM_ARGS。
bash
-e SUP_GROUP_IDS="0" \
-e INSTALL_PACKAGES="" \
-e PACKAGES_MIRROR="" \
-e VNC_PASSWORD="MySecurePassword123" \
-e WEB_AUTHENTICATION_DEFAULT_USERNAME="admin" \
-e WEB_AUTHENTICATION_DEFAULT_PASSWORD="MyWebPassword456" \
-e FF_OPEN_URL="https://www.google.com" \
-e FF_CUSTOM_ARGS=""
环境变量的说明以及如何为它们提供值的建议:
1.) SUP_GROUP_IDS
- 说明:指定用户组 ID,通常用于设置容器中运行的用户权限。
- 值的建议 :可以使用
0
(表示 root 用户)或者群晖中用户的组 ID。你可以通过 SSH 登录到群晖并运行id
命令来查找当前用户的组 ID。
2.) INSTALL_PACKAGES
- 说明:用于指定要在容器中安装的额外软件包。
- 值的建议:可以是一个用空格分隔的软件包名称字符串。如果不需要额外软件包,可以将其留空。
3.) PACKAGES_MIRROR
- 说明:用于指定软件包的镜像源。
- 值的建议:可以使用默认的镜像源,或者选择一个你信任的镜像源。如果你不确定,可以留空,通常默认源是足够的。
4.) VNC_PASSWORD
- 说明:用于设置 VNC 连接的密码,以保护远程访问。
- 值的建议 :设置一个强密码,例如
MySecurePassword123
。确保记住这个密码,因为你需要用它来连接 VNC。
5.) WEB_AUTHENTICATION_DEFAULT_USERNAME
- 说明:用于设置 Web 界面的默认用户名。
- 值的建议 :可以设置为你想要的用户名,例如
admin
或user
。
6.) WEB_AUTHENTICATION_DEFAULT_PASSWORD
- 说明:用于设置 Web 界面的默认密码。
- 值的建议 :设置一个强密码,例如
MyWebPassword456
。确保这个密码与上面的用户名匹配。
7.) FF_OPEN_URL
- 说明:用于指定 Firefox 启动时打开的 URL。
- 值的建议 :可以是任何有效的 URL,如
https://www.google.com
或者留空,表示启动时不打开任何网页。
8.) FF_CUSTOM_ARGS
- 说明:用于传递给 Firefox 的自定义启动参数。
- 值的建议 :可以留空,或者如果你有特定的启动参数需求,可以在这里指定。例如,如果你希望 Firefox 在无头模式下运行,可以使用
-headless
。
4. 字体设置
因为默认的中文字体是方框,所以得下载字体配置。
1.)安装中文字体
下载并安装中文字体,例如阿里巴巴普惠字体。可以从阿里巴巴普惠字体官网下载字体文件,如 AlibabaPuHuiTi-2-55-Regular.ttf,然后将字体文件复制到群晖服务器的 /docker/Firefox/fonts/目录下,并更新字体缓存。
下载地址:阿里巴巴字体素材平台 --- 更安心、更实惠、更专业
2.)容器内部修改字体
检查 Docker 服务状态:
bash
sudo systemctl status docker
查看当前正在运行的 Docker 容器:
bash
docker ps -a
进入正在运行的容器:
bash
sudo docker run -it --rm <容器ID或名称> /bin/bash
错误:~$ sudo docker exec -it <容器ID或名称> /bin/bash OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
容器中没有安装 /bin/bash
,这可能是因为该容器使用的是轻量级的操作系统,如 Alpine Linux,通常使用 /bin/sh
作为默认的 shell。
bash
sudo docker exec -it <容器ID或名称> /bin/sh
查看特定容器的详细信息:
bash
docker inspect <容器ID或名称>
查看字符集:
bash
/tmp # locale
/bin/sh: locale: not found
容器内找不到 locale
命令,安装 locales
包:
bash
apk update
apk add --no-cache musl-locales musl-locales-lang
查看可用的字体包:
bash
apk search font
找到适合的字体包并安装,例如:
bash
apk add font-noto
Noto CJK 系列是专门为中、日、韩文字设计的,可以支持这三种语言:
bash
apk add font-noto-cjk
更新字体缓存:
bash
fc-cache -fv
注意事项:
1.) 访问只有一个小窗口?
在 Docker 容器中运行 Firefox 时,可能会遇到窗口显示不全或功能不完整的问题。这通常是因为 Firefox 运行在无头(headless)模式或没有正确的显示环境。