Flight Gearは、飛行機を操縦するシミュレータとして古くから人気のあるソフトです。離陸前の計器類の操作や、飛行機の操縦方法などを知らないと、離陸することすらできません。フライトシミュレータ「Flight Gear」もDockerコンテナで稼働させてみます。以下にDockerfile、ビルド方法、コンテナの実行手順を示しておきます。「Flight Gear」もPlayDeb.netで配布されており、Ubuntuで稼働できます。
# mkdir /root/flightgear_ubuntu # cd /root/flightgear_ubuntu # vi Dockerfile FROM ubuntu:15.10 MAINTAINER Masazumi Koga ENV container docker RUN apt-get update RUN apt-get install -y wget sudo apt-utils lsb-release RUN wget -c archive.getdeb.net/install_deb/playdeb_0.3-1~getdeb1_all.deb RUN dpkg -i playdeb_0.3-1~getdeb1_all.deb RUN apt-get update && apt-get upgrade -y RUN apt-get install -y flightgear
Dockerfileが用意できたら、Dockerイメージをビルドします。Dockerイメージ名は「ubuntu:flightgear01」にしました。
# pwd /root/flightgear_ubuntu # docker build -f ./Dockerfile -t ubuntu:flightgear01 --no-cache=false .
Dockerイメージ「ubuntu:flightgear01」から、Dockerコンテナを起動します。
# docker run \ -it \ --rm \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v $HOME/.fgfs:$HOME/.fgfs \ -v /var/lib/dbus:/var/lib/dbus \ -v /var/run/dbus:/var/run/dbus \ -v /etc/machine-id:/etc/machine-id \ --device=/dev/dri:/dev/dri \ --device=/dev/snd:/dev/snd \ --device=/dev/input:/dev/input \ ubuntu:flightgear01 /usr/games/fgfs
鉄道の運転士の気分を味わえるシミュレータとしては、「OpenBVE」が有名です。海外の鉄道以外にも、別途入手した日本の鉄道の在来線などのデータを読み込んで、列車を運転させることができます。以下、Dockerfile、ビルド方法、コンテナの実行手順を示しておきます。「OpenBVE」は、Ubuntuのディストリビューションの標準リポジトリで入手できますが、Ubuntu 14.04.4対応のOpenBVEは、ファイルを若干修正しないと正常に起動できない問題がありますので、今回は2016年4月リリースのUbuntu 16.04のOSテンプレートを使って、OpenBVEを稼働させてみます。
# mkdir /root/openbve_ubuntu # cd /root/openbve_ubuntu # vi Dockerfile FROM ubuntu:16.04 MAINTAINER Masazumi Koga ENV container docker RUN apt-get update && apt-get update -y RUN apt-get install -y sudo apt-utils lsb-release RUN apt-get install -y openbve libgtk2.0 packagekit-gtk3-module libcanberra-gtk-module
Dockerfileが用意できたら、Dockerイメージをビルドします。Dockerイメージ名は「ubuntu:openbve01」にしました。
# docker build -f ./Dockerfile -t ubuntu:openbve01 --no-cache=false .
Dockerイメージ「ubuntu:openbve01」から、Dockerコンテナを起動します。
# docker run \ -it \ --rm \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v $HOME/.openbve:$HOME/.openbve \ -v /var/lib/dbus:/var/lib/dbus \ -v /var/run/dbus:/var/run/dbus \ -v /etc/machine-id:/etc/machine-id \ --device=/dev/dri:/dev/dri \ --device=/dev/snd:/dev/snd \ --device=/dev/input:/dev/input \ ubuntu:openbve01 /usr/games/openbve
Dockerコンテナで稼働する鉄道シミュレータ「OpenBVE」のプレイの様子。Docker環境でもスムーズに動く。フライトシミュレータと同様、運転席の操作パネルの意味や操作方法を知らないと、発車すらできない今回は、3次元グラフィックスを駆使するドライブシミュレータ、フライトシミュレータ、鉄道シミュレータをDockerコンテナで稼働させる具体的な手順をご紹介しました。ゲームアプリ環境をDockerイメージ化できれば、連載第10回でご紹介した方法により、別の物理マシンのDocker環境にも簡単に移植できます。
また、今回のように、「ホストOSは使い慣れたCentOSで運用したいが、その上では、Ubuntuやその他のLinux OS向けの魅力的なゲームアプリを動かしたい」という場合に、Dockerが威力を発揮します。今までマルチOSのアプリ環境を実現するためには、ハイパーバイザー型の仮想化技術に頼っていましたが、Dockerによって大幅にオーバーヘッドを削減しつつ、使い慣れたOS環境の上で、マルチOS環境のアプリを稼働させることができます。ぜひ使い慣れたOS環境にDockerを導入し、アプリのコンテナ化による「高速マルチOS環境」を手に入れてみてください。
日本ヒューレット・パッカード株式会社 オープンソース・Linuxテクノロジーエバンジェリスト。兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師、SIを経験。2006年、米国HPからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。現在は日本HPにて、Linux、FreeBSD、Hadoopなどのサーバー基盤のプリセールスSE、文書執筆を担当。Red Hat Certified Virtualization Administrator, Novell Certified Linux Professional, Red Hat Certified System Administrator in Red Hat OpenStack, Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「CentOS 7実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード。
古賀氏の最新記事が読めるブログはこちら。
第21回 Dockerで3Dゲームを動かす――構築編
第20回 Dockerで3Dゲームを動かす――準備編
第17回 Dockerで植物が育つ様子を自動録画してみよう――その1Copyright © ITmedia, Inc. All Rights Reserved.