Docker上に構築したUbuntuデスクトップ環境でFirefoxがクラッシュする現象の対処

Ubuntu + LXDE + XRDPの環境をDocker上に構築し別マシンからRDPで接続したところ、コンテナ上のFirefoxが頻繁にクラッシュする現象が発生したため、備忘録として対処法を記載します

  • 使用したDockerイメージ
    yama07/docker-ubuntu-lxde

    https://hub.docker.com/r/yama07/docker-ubuntu-lxde/

  • 発生する現象
    コンテナを起動後にWebページをFirefoxで閲覧すると頻繁にクラッシュ
    画像や情報量の多いページで現象が顕著

  • 原因
    起動したコンテナの/dev/shmの割り当て容量が足りないため、ブラウザがクラッシュします
    Dockerがデフォルトで割り当てる容量は64MBです。

    f:id:kuranabe:20190126190217p:plain

  • 対処法
    docker run時に「--shm-size」オプションを付加し、/dev/shmの割り当て容量を指定します。
    「--shm-size=1g」で/dev/shmに1GBを割り当てたところ、Firefoxのクラッシュが解消しました。

    f:id:kuranabe:20190126190430p:plain

    今回使用したDockerイメージ「yama07/docker-ubuntu-lxde」の起動コマンド例では、以下のようになります。
    $docker run --rm -it \
        -p 3389:3389 \
        -u $(id -u):$(id -g) \
        -e USER=kuranabe \
        -e PASSWD=kuranabepw \
        --shm-size=1g \
        yama07/docker-ubuntu-lxde