Skip to content

Installation with Docker JP

HiroYokoyama edited this page Oct 11, 2025 · 3 revisions

Installation with Docker

moleditpy のようなGUIアプリケーションは、グラフィックス、ウィンドウシステム、キーボード入力など、多くの複雑なシステムライブラリに依存しています。Dockerを使用することで、これらの依存関係がすべて含まれたコンテナが作成されるため、お使いの環境を汚すことなく、簡単かつ確実にアプリケーションを起動できます。

1. 前提条件

インストールを開始する前に、お使いのシステムに以下のソフトウェアがインストールされていることを確認してください。

2. インストール手順

ステップ1: リポジトリをクローン

まず、このリポジトリをローカルマシンにクローンします。

git clone https://github.com/HiroYokoyama/python_molecular_editor_docker.git
cd python_molecular_editor_docker/

ステップ2: Dockerイメージをビルド

リポジトリのルートディレクトリ(Dockerfile がある場所)で、以下のコマンドを実行してDockerイメージをビルドします。

docker build -t moleditpy-app .
  • -t moleditpy-app は、作成するイメージに moleditpy-app という名前を付けています。
  • 最後の . は、カレントディレクトリの Dockerfile を使用することを意味します。
  • 初回ビルドには数分かかることがあります。

ステップ3: アプリケーションを実行

お使いのOSに応じて、以下のコマンドを実行してコンテナを起動し、moleditpy を実行します。


Linux の場合

  1. (初回のみ)ホストPCでターミナルを開き、コンテナからの接続を許可します。

    xhost +local:docker
  2. コンテナを起動します。

    docker run --rm -it \
           -e DISPLAY=$DISPLAY \
           -v /tmp/.X11-unix:/tmp/.X11-unix \
           moleditpy-app

macOS の場合

  1. XQuartzを起動します。 XQuartzの設定で、「セキュリティ」タブの「ネットワークからの接続を許可」にチェックが入っていることを確認してください。

  2. ホストPCのターミナルで、コンテナからの接続を許可します。

    xhost + 127.0.0.1
  3. コンテナを起動します。

    docker run --rm -it \
           -e DISPLAY=host.docker.internal:0 \
           moleditpy-app

Windows (VcXsrvを使用) の場合

  1. VcXsrvを起動します。 起動時に "Disable access control" のチェックボックスをオンにすることをおすすめします。

  2. ホストPCのIPアドレスを確認します。 コマンドプロンプトやPowerShellで ipconfig を実行し、お使いのネットワークアダプタのIPv4アドレスを調べます。

  3. コンテナを起動します。 <your-ip-address> の部分を、ステップ2で調べたIPアドレスに置き換えてください。

    docker run --rm -it \
           -e DISPLAY=<your-ip-address>:0.0 \
           moleditpy-app

3. トラブルシューティング

  • Error: cannot open display というエラーが出る場合:

    • X11 Server (XQuartz, VcXsrv) が起動しているか確認してください。
    • xhost コマンドが正しく実行されているか確認してください。
    • -e DISPLAY 環境変数の値が、お使いの環境に対して正しいか確認してください。
  • Cannot connect to the Docker daemon というエラーが出る場合:

    • Docker DesktopまたはDockerサービスが起動していることを確認してください。

Clone this wiki locally