Dockerコンテナ内のGUIソフトウェアのリモートグラフィカルインターフェイスの相互作用:Xming + Xshell + SSH、例として脳画像処理ソフトウェアFSL(win10)、dockerコンテナの視覚化、dockerコンテナへのリモートログイン、コンテナにインストールされたFSLグラフィカルディスプレイ

序文


  dockerコンテナ内のソフトウェアの操作はコマンドラインに基づいているため、グラフィカルインターフェイス慣れている人がdockerを使用するのが難しくなり、アーティファクトであるため、不快です。通常の状況では、コンテナのデスクトップ環境をインストールしてから、VNC同様の方法を使用してリモートでアクセスできます。ただし、コンテナがサーバー上にある場合、ほとんどの場合、デスクトップ環境をインストールする必要はありません。グラフィカルインターフェイスを操作する必要があるプログラムがある場合は、Xウィンドウシステム使用して、ソフトウェアのグラフィカルインターフェイスをリモートサーバーに転送して表示します。Xはプロトコルであり、現在のバージョンは11で、一般にX11として知られています。Xウィンドウシステムは、クライアントとサーバーで構成されています。サーバーXサーバーはグラフィック表示を担当し、クライアントライブラリXクライアントは表示するコンテンツを出力します。クライアントとサーバーはSSHプロトコルを使用して接続されています。dockerコンテナーの場合、dockerコンテナーはクライアントであり、Xmingとシェルがインストールされているホストはサーバーです。Xmingは、dockerコンテナ内のグラフィカルソフトウェアのグラフィカルインターフェイスとリモートで対話できます(リモートデスクトップとは異なり、ソフトウェアのグラフィカルインターフェイスのみが完全なグラフィカル環境です)。インストールプロセス中に多くのピットが踏まれたため、参照用にここに記録されています。

  グラフィカルインターフェイスを備えたソフトウェア:FSL(FSLを使用したいので、実際には、geditなどのグラフィカルインターフェイスを備えた任意のソフトウェアを選択できます)

  ホストオペレーティングシステム:win10pro

  ツール1:Xming

  ツール2:xshell

  ツール3:win10 powershell

  作成者が構成したコンテナイメージ:https://pan.baidu.com/s/1KODZC1-Qx8Emo2diw-G2yw yue2

dockerの  原理と基本操作を参照してください:Doker入門

ドッカーの下にFSLを  グラフィカルにインストールしない場合は以下を参照してください。スカルプストリッピングを実現するためにドッカーの下にFSLをインストールする

  注:作成者のクライアントとサーバーは同じホスト上にあります。原作は簡単ではありませんので、転載元をご記入ください。

copyright©Yishu:https://blog.csdn.net/sinat_35907936/article/details/109273787


コンテナを作成し、SSHポートクライアントをマップします


  • ホストポートを表示

ドッカーコンテナ  にリモートアクセスする場合は、ホストマシンのポートを介してアクセスされるため(覚えておくことが重要です、最初にホストマシンのポートをドッカーコンテナに割り当てる必要があります。最初にホストが使用するポートを確認し、占有されていないポートを選択します。powershellに入力してください:

netstat -a
  • コンテナを作成し、ポートをマップします

  SSHのデフォルトポートは22であるため、ホストの空きポートはコンテナのポート22にマップされます。50002を選択しましたこのとき、ホストのポート50002への外部アクセスは、コンテナのポート22へのアクセスと同等です。

docker pull ubuntu:latest
docker run -it -p 50002:22 --name ubuntu_fsl_disp -v /d/docker/ubuntu_fsl_disp:/shared_data ubuntu bash

  dockerGUIでポートの状況を確認します。

ここに写真の説明を挿入

  • ubuntuの構成:ソースの更新

  次のミラーソースにsources.list置き換えて、/etc/apt/sources.list実行します。

apt-get update

  sources.list

# 163源 for ubuntu 2020.04
deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
  • テキストエディタvimスペアをインストールします

apt-get install vim

copyright©Yishu:https://blog.csdn.net/sinat_35907936/article/details/109273787


コンテナ接続でSSHを構成する


  SSHサーバーをインストールします

apt-get install openssh-server

  sshd_configを変更し、ポート22を開き、パスワードログインを許可します

echo "Port 22">>/etc/ssh/sshd_config
echo "PermitRootLogin yes">>/etc/ssh/sshd_config

  sshサービスを開始する

service ssh start

  sshステータスを表示する

service ssh status

  sshは自動起動します。以下のコマンドの入力に問題がありますが、プロンプト通りの動作にはなりません。当面は手動で起動してください。

systemctl enable ssh

テストコンテナSSH:xshellリモートログインドッカーコンテナ接続


  コンテナルートユーザーのパスワードを先に設定してください。パスワードがないとログインできません。

passwd

  ポート22がリスニング状態にあるかどうかを確認します。

netstat -ap | grep 22

  そうでない場合は、service ssh restartSSHを再起動します

ここに写真の説明を挿入

  別のパワーシェルを開いて、ホストのIPアドレスを確認します。

ipconfig

  作成者が使用するワイヤレスネットワーク:ホストIPは192.168.1.104です。ホストIPはドッカーコンテナIPです。

ここに写真の説明を挿入
  xshellを開き、新しい接続を作成します。ホストIPはドッカーコンテナIPであり、ホストのポート50002はコンテナの22ポートです。したがって、SSH接続パラメータは次のとおりです。ポート番号の変更に注意してください

ここに写真の説明を挿入
  接続が確立されたら、接続名をダブルクリックして接続を開始します。次に、ユーザー名:rootに加えて、コンテナーにリモートでログインするために上記で設定したパスワードを入力します。

ここに写真の説明を挿入
  接続結果:SSH接続は成功しました。

ここに写真の説明を挿入

copyright©Yishu:https://blog.csdn.net/sinat_35907936/article/details/109273787


Xmingリモートグラフィカルドッカーコンテナサーバー


  Win10にXmingをインストールするには、次のショートカットを確認してください。

ここに写真の説明を挿入
  最初にXlaunchを開き、構成します。図のボックスに加えて、他のオプションをデフォルトのオプションにすることができます。すべてのデフォルトオプションが表示されている場合は、エラーが発生している可能性があります。プロトコルが指定されていません。構成が完了したらXmingを開き、シーケンスに注意してください。

ここに写真の説明を挿入

  xshellを介してリモートでFSLをコンテナにインストールします(FSLを必要としない友人は、geditをインストールするだけです)

apt-get install fsl

  fsl環境変数を構成する

echo ". /etc/fsl/fsl.sh" >>/etc/bash.bashrc

  xshellでSSH接続を切断し、再接続します。タイプ:

fsl

  「DISPLAYが設定されていません。DISPLAY環境変数を設定してください!」と表示されます。現時点ではクライアントからの出力がないため、つまり、DISPLAY環境変数はまだ割り当てられていません。次の2行のコードを使用して、値を割り当て、環境変数を表示します。

 export DISPLAY=192.168.1.104:0.0
 echo $DISPLAY

  割り当てが完了したら、もう一度fsl(またはgedit)と入力し、Enterキーを押すと、奇跡が現れ、fslインタラクティブインターフェイスが目の前にはっきりと表示されます。X11は本当に大きなアーティファクトです。

ここに写真の説明を挿入
  次のエラーが発生した場合は、最初にXmingをオフにしてから、Xlaunchを再構成し、最後にXmingをオンにしてください。

  アプリケーション固有の初期化に失敗しました:「192.168.1.104:0.0」を表示するために接続でき
  ませんでしたプロトコルが指定されていません

copyright©Yishu:https://blog.csdn.net/sinat_35907936/article/details/109273787


コンテナのエクスポートとインポート


  構成済みのクライアントコンテナーをイメージにエクスポートし、それを友人と共有すると、構成済みのクライアント環境が友達に提供されます。

docker export -o d:/docker/ubuntu_fsl_x11.tar ubuntu_fsl_disp

  再度使用する場合は、イメージをインポートして実行するだけで、上記のすべてのクライアント構成を取得できます。

docker import d:/docker/ubuntu_fsl_X11.tar ubuntu_fsl_x11
docker run -it -p 50003:22 --name ubuntu_fsl_x11  -v /d/docker/ubuntu_fsl_x11:/shared_data ubuntu_fsl_x11 bash

  SSHセルフスタートが正常に構成されていないため、SSHサービスを再起動する必要があります

service ssh start
service ssh status

  サーバー側でのグラフィカルな表示操作については、前のセクションを参照してください。
ここに写真の説明を挿入

copyright©Yishu:https://blog.csdn.net/sinat_35907936/article/details/109273787


参照


  https://www.linuxprobe.com/putty-xming-oracle.html
  https://blog.csdn.net/qq_16093937/article/details/83269106
  https://blog.csdn.net/weixin_34355559/article/details/ 86388903copyright © YiShu :https://blog.csdn.net/sinat_35907936/article/details/109273787
  

おすすめ

転載: blog.csdn.net/sinat_35907936/article/details/109273787