Zakku-Spot.com

気になる情報のリサーチブログ - Reserch blog of information you care about -

[基礎知識]Docker上のAnacondaコンテナをGUI(Anaconda Navigator)で使用する手順〔Dockerfile単体ビルド〕編

8月 26, 2023
0 0
Read Time:1 Minute, 46 Second

 前回(前回記事([Review]Docker上にAnacondaコンテナ作成))は、Docker上にAnacondaをコンテナとして作成・起動しましたが、CUI(condaコマンド等)利用のみ可能で、GUI(Anaconda Navigator)利用ができませんでした。

 今回は、GUI(Anaconda Navigator)利用可能な、Anacondaコンテナを作成します。
 ※ここでは〔Dockerfile単体ビルドでコンテナ作成しています。

1.Dockerfileの作成

※このDockerfileは、Anaconda Navigatorが依存しているライブラリをインストールします。

# 基本となるイメージの指定
FROM continuumio/anaconda3

# 任意のメタデータやラベルを設定(例として)
LABEL maintainer="your_email@example.com" \
      version="1.0"

# 必要なライブラリとツールのインストール ※適宜変更が必要
RUN apt-get update && apt-get install -y \
    libgl1-mesa-glx \
    libegl1-mesa \
    libxrandr2 \
    libxrandr2 \
    libxss1 \
    libxcursor1 \
    libxcomposite1 \
    libasound2 \
    libxi6 \
    libxtst6 \
    libxkbcommon-x11-0 \
    libxcb-icccm4 \
    libxcb-image0 \
    libxcb-keysyms1 \
    libxcb-randr0 \
    libxcb-render-util0 \
    libxcb-xinerama0 \
    libxcb-xfixes0

# dbusのインストール ※Anaconda Navigator動作には必須ではないが、ワーニング対策で追記
RUN apt-get install -y dbus

# 環境変数の設定 ※Anaconda Navigator動作には必須ではないが、ワーニング対策で追記
ENV XDG_RUNTIME_DIR=/tmp/runtime-root

# コンテナの起動時に実行するコマンドを指定
CMD [ "/bin/bash" ]

2.Dockerイメージのビルド

docker build -t anaconda-gui-image:latest .

※以下はDocker Desktop上のイメージ画面

3.Anacondaコンテナの作成・実行

・docker run -it –name <作成・実行するコンテナ名>
  -e DISPLAY=host.docker.internal:0.0 <元にする基本イメージ>

※後日ポートマッピング設定追加:
docker run -it -p 8000:8000 –name anaconda-dockerfile-gui-container -e DISPLAY=host.docker.internal:0.0 anaconda-gui-mount-image:latest

※GUIアプリケーションを実行するための設定とともにコンテナを作成・起動しています。

※上記コンテナ作成済の場合は、次のコマンドで直接起動して下さい。

docker start -ai anaconda-gui-container

4.Windows側でXサーバの起動

※Windows上でXサーバを動作させるためのツールを起動(以下の(2))します。

※もしツールが未インストールの場合は(以下の(1)で)インストールが必要

(1) VcXsrv Windows X Serverダウンロード・インストール

① 一般的には、VcXsrv Windows X Serverを使用します。

② オプションを指定して「Next」をクリック

③ インストール先フォルダを指定して「Install」をクリック

④ インストール完了後「Close」をクリック

(2) VcXsrv起動

① XLaunchショートカットキーをダブルクリック

② 『Multiple windows』を指定して「次へ」をクリック

③ 『Start no client』を指定して「次へ」をクリック

※「Client startup」や「Select how to start clients」の選択は、VcXsrv Windows X Serverを起動する際に、どのような動作をするかを指定するものです。(以下、それぞれの選択肢の説明です)

start no client:
このオプションを選択すると、Xサーバ自体のみが起動し、その後の任意の時点でクライアントプログラム(GUIアプリケーション)を手動で開始することができます。これは、特定のGUIアプリケーションを自動的に開始したくない場合や、複数の異なるアプリケーションを順番に起動したい場合に便利です。

Start a program:
このオプションを選択すると、Xサーバの起動と同時に指定したクライアントプログラム(GUIアプリケーション)も自動的に開始されます。これは、特定のアプリケーションを常にXサーバと一緒に起動したい場合に便利です。さらに、SSHを介してリモートのマシン上のアプリケーションを起動することも可能です。

※Anaconda NavigatorのようなDockerコンテナ内のアプリケーションを表示する場合、最初は「start no client」を選択するのが最もシンプルで、その後DockerコンテナからGUIアプリケーションを手動で起動します。

④ 拡張設定を指定して「次へ」をクリック

※ここでは4項目ともチェックしています。

※各設定項目についての説明:

Clipboard:
このオプションをチェックすることで、WindowsとDockerコンテナ内のアプリケーション間でクリップボードを共有できます。これは、テキストのコピーやペースト操作が頻繁に行われる場合に便利です。
Primary Selection: これもチェックすると、LinuxのPRIMARYセレクション(テキストを選択するだけでコピーされる特性)もWindowsのクリップボードと同期されます。

Native opengl:
GUIアプリケーションがOpenGLを使用する場合、このオプションを有効にして、ネイティブのWindows OpenGLライブラリを利用することが推奨されます。ただし、Anaconda NavigatorのようなシンプルなGUIツールの場合、このオプションをチェックしなくても問題ないことが多いです。

Disable access control:
これをチェックすると、VcXsrvはすべてのクライアントからの接続を許可します。セキュリティのリスクがあるため、ローカルネットワークでのみ使用することを推奨します。Dockerコンテナからの接続を許可する場合には、このオプションをチェックする必要があります。

Additional parameters for VcXsrv:
特定の追加のパラメータが必要な場合にのみ、この入力欄にパラメータを入力します。通常、デフォルトのままで問題ありません。

⑤ そのまま「完了」をクリック

⑥ もし以下の警告ダイアログが表示されたら『アクセスを許可する』をクリック

6.Anaconda Navigator起動

 (上記手順「3.Anacondaコンテナの実行」で起動したコンテナ内で)

service dbus start 
※↑これは以下のワーニング対策で講じたものだが、解決に至りませんでした。
 結果として、Anaconda Navigatorの動作に問題がなかったので、これについては無視対応しました。

anaconda-navigator

を実行

※Anaconda Navigator起動

 以上で、Anacondaコンテナから(Xサーバ経由で)GUI(Anaconda Navigator)を起動して管理する環境の作成が完了しました。

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

コメントを残す