CentOS7 下用 Docker 部署 Firefox 以实现浏览器套浏览器访问被屏蔽的网站

公司用的日本专线,狡猾的日本人为了防止上班摸鱼把博客园都屏蔽了,使用中文搜索问题检索结果永远只有 CSDN 和内容农场……
恰巧看到这个贴子:使用 Docker 安装 Firefox 浏览器让小鸡发光发热,看了下最终的效果是能在浏览器标签内构建一个 Firefox 浏览器,无视本机的任何防火墙限制,立马决定试下。


最终的效果如下,你可以先确定是否符合你的需求再往下看,说一句视频是肯定看不了的,页面的刷新能看到较为明显的渲染过程:
成品
且请使用 2 核以上的服务器,1H2G 服务器在页面刷新时占用如下:
1H2G 占用


1、安装 Docker 和下载 Firefox 容器镜像
一笔带过 CentOS7 下 Docker 的安装和启动:

yum -y install docker
service docker start

下载镜像,Docker Hub 地址:jlesage/firefox

docker pull jlesage/firefox

2、启动容器
基础启动命令:

docker run -d \
--name=firefox \
-e TZ=Asia/Hong_Kong \
-e DISPLAY_WIDTH=1920 \
-e DISPLAY_HEIGHT=1080 \
-e KEEP_APP_RUNNING=1 \
-e ENABLE_CJK_FONT=1 \
-e VNC_PASSWORD=my_password \
-p 80:5800 \
--security-opt seccomp=unconfined --shm-size 4000m \
jlesage/firefox

参数解析:

参数 解释 样例
TZ 时区。 Asia/Hong_Kong
DISPLAY_WIDTH 浏览器分辨率长。 1920
DISPLAY_HEIGHT 浏览器分辨率高。 1080
KEEP_APP_RUNNING 是否保持运行。不保持的话选 0,即所有标签关闭后容器停止。 1
ENABLE_CJK_FONT 字体选项?反正不开启中文会乱码。 1
VNC_PASSWORD 访问密码。 my_password

端口映射不说了,容器内的 5800 端口映射到宿主机的 80 端口,这样就能直接用宿主机的 IP 访问服务了;--security-opt seccomp=unconfined 允许容器执行全部的系统的调用,即给予容器最大权限;--shm-size 4000m 限制容器内存占用。

开放端口和安全组之后,直接使用服务器 IP 访问即可:
输入密码
访问成功

由于我使用的是 Linode 的赠金开的服务器,而且是上班开机下班删机的那种,因此暂时没有再做进一步的安全配置。

结束。