序文
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でポートの状況を確認します。
次のミラーソースに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
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 restart
SSHを再起動します
別のパワーシェルを開いて、ホストの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