0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DockerからMuJoCoのGUIを表示させてみた

Posted at

はじめに

普段は Ubuntu 24.04 を使用していますが、今回 Ubuntu 20.04 上で MuJoCo を動かす必要があり、Docker コンテナ内で作業を行いました。しかし、Docker 内ではそのままでは MuJoCo の GUI を表示できなかったため、表示できるように環境を整備した手順をまとめます。

目次

  1. 使用環境
  2. 注意事項
  3. 環境構築
  4. 参考文献

使用環境

・ホストOS: Windows 11 Home(バージョン 24H2、ビルド 26100.3915)
・WSL2: Ubuntu 24.04 LTS
・CPU: Intel Core i7-1065G7
・RAM: 16 GB
・Dockerバージョン: 26.1.3(build 26.1.3-0ubuntu1~24.04.1)
・Xサーバ: VcXsrv(GUI表示用)

注意事項

DISPLAYを設定後は既存のパスが変更されてしまい、Docker外でのGUI表示ができなくなるので、現在のDISPLAYを確認しておきましょう。
デフォルトだとDISPLAY=:0のようです。

環境構築

1. Docker コンテナを起動して MuJoCo をインストール

以下のコマンドでUbuntu20.04コンテナを起動し、必要なパッケージとMuJoCoをインストールします。

docker run -it ubuntu:20.04 bash
apt update
apt install python3-pip
pip3 install mujoco
python3 -m mujoco.viewer

この時点ではまだGUI表示環境が整っていないため、次のようなエラーが出ます。

X11: The DISPLAY environment variable is missing

2. コンテナの一時停止

いったん Docker コンテナを停止して GUI 環境を整えます。

docker ps
docker stop <コンテナ名 or コンテナID>

3. VcXsrv のインストールと起動(Windows側)

Docker コンテナから GUI を表示するために、Windows 側に X サーバ が必要です。今回は「VcXsrv」を使用します。
ダウンロード:https://sourceforge.net/projects/vcxsrv/[1]
インストール後、「XLaunch」を起動し、以下の設定で進めます。
「Multiple windows」を選択
「Start no client」を選択
「Disable access control」にチェックを入れる
※私は次のページを参考にしました:https://atmarkit.itmedia.co.jp/ait/articles/1812/06/news040.html[2]

4. ホストPCのIPアドレスを確認

WindowsのCMDで以下を実行し、Wireless LAN adapter Wi-Fiの項目にある IPv4 アドレス をメモしておきます。

ipconfig

5. DISPLAY 環境変数とアクセス設定

WSLに戻り、以下のように設定します。

export DISPLAY=<IPアドレス>:0.0
xhost +local:root # rootユーザーのXアクセスを許可
docker start -ai NAME//Dokerの再開

Docker コンテナ内で以下を再実行

python3 -m mujoco.viewer

以下のようなMuJoCo の GUI が表示されれば成功です。

image.png

7. 作業終了後のアクセス制限解除

作業が終わったら、アクセス制限を戻しておきましょう

xhost -local:root

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?