第22回 Dockerで3Dゲームを動かす――稼働編古賀政純の「攻めのITのためのDocker塾」(3/3 ページ)

» 2016年05月18日 08時00分 公開
前のページへ 1|2|3       

フライトシミュレータ「Flight Gear」をDockerコンテナで動かす

 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

Docker Dockerコンテナで稼働するフライトシミュレータ「Flight Gear」のプレイの様子。操縦席で操作すべきスイッチも多く、初心者には離陸までが一苦労であるがゆえに人気のシミュレータである

鉄道シミュレータ「OpenBVE」をDockerコンテナで動かす

 鉄道の運転士の気分を味わえるシミュレータとしては、「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 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実践入門」などがある。趣味はレーシングカートとビリヤード。

古賀氏の最新記事が読めるブログはこちら


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ