🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

2回答

8614閲覧

WindowsからDockerコンテナにリモートデスクトップ接続できない

aimk

総合スコア5

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

1クリップ

投稿2019/10/18 02:35

#前提、実現したいこと
Dockerhub上にあるCentOSイメージから作成したDockerコンテナに、
GUI接続をしたいと考えております。
デスクトップ環境の構築をするため、コンテナにはXfce・Xrdpをインストールし、コンテナにXrdpでの接続をしたいものです。

#やったこと

docker hubよりpullしたcentosイメージをdocker run(--privilegedオプション付与)してコンテナ作成

『docker run --privileged -d -p 8080:80 --name コンテナ名 ベースイメージ名 /sbin/init』

コンテナに対し、以下の設定を行いました。

★Xfceインストール
$ sudo yum install -y epel-release
$ sudo yum groupinstall -y "Xfce"
$ sudo reboot

★Xrdpインストール
$ sudo yum install -y xrdp

★設定変更(色24bitへ)
$ cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.original
$ vi /etc/xrdp/xrdp.ini

(変更前)max_bpp=32
(変更後)max_bpp=24

★Xrdp起動および起動設定
$ sudo systemctl enable xrdp
$ sudo systemctl start xrdp

★Xclientsの設定
$ echo "xfce4-session" > ~/.Xclients
$ chmod a+x ~/.Xclients

RDP通信許可設定のため下記コマンドを実行試みた。

★RDP通信の許可
$ sudo yum install firewalld
$ sudo firewall-cmd --add-port=3389/tcp --permanent
$ sudo firewall-cmd --reload

しかし結果『FirewallD is not running.』となりコマンド実行できないこと、ステータス確認すると「inactive(dead)」となっていることから、FW無効になっていると判断し、リモートデスクトップ接続できるかどうかを確認。

#質問

不足している設定などありますでしょうか?
何が不足しているのかわかりません。。
対処方法をご教授いただけますようお願いいたします。

#補足

【作業端末】
・Windows7 SP1
・Docker Toolbox
【コンテナ】
・centos: 7.7.1908 (Core)

※『CentOSのDockerコンテナ上でfirewallコマンドによる設定ができない』の追加質問になります。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

DockerコンテナはVirtualBoxでご利用でしょうか。

下記コマンドでコンテナのIPを確認し、

確認したIPに対しWindowsリモートデスクトップ接続を実施。

・docker inspect --format '{{ .NetworkSettings.IPAddress }}' コンテナ名

VirtualBoxの仮想マシンはホストとNATで接続されていることが多いです。NATの場合ホストからコンテナ側で確認したIPに直接接続はできません。

NAT設定で「ホスト:3389」を「仮想マシン:3389」にポートフォワードするように設定し、リモートデスクトップで接続先IPを127.0.0.1として接続します。

投稿2019/10/18 08:35

yukky1201

総合スコア2751

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aimk

2019/10/21 05:32

yukky1201様 ありがとうございます。VirtualBoxを利用しています。 VirtualBoxマネージャーを確認してみたところポートフォワーディングの設定がありましたので、 ホストIPを「127.0.0.1」ゲストOSを「192.168.99.100」にしてポート「3389」の設定を追加しました。 リモートデスクトップ接続で「127.0.0.1」を試したところ 「既に進行中のコンソールセッションがあるため、リモートコンピュータ上の他のコンソールセッションに接続できませんでした。」とのメッセージが返りました。 仮想マシンのIP「192.168.99.100」で試したところxrdpのログイン画面を表示することができました。
aimk

2019/10/21 05:32

その後Connection Logのウインドウが表示されましたが メッセージを見る限り、VNC receiving server initの直後でエラーになり、 「VNC error - problem connecting」「some problem」とメッセージが返ってしまいました。
guest

0

Xrdpはport3389でlistenしているんですよね?

tigervnc-serverなどのvncサーバーはインストールされてますか?
xrdpの動作に必要です。
例:sudo yum install tigervnc-server -y


あぁ勘違いでまるで関係ないコードブロック記載してました。
docker run --privileged -d -p 8080:80 -p 3389:3389 --name コンテナ名 ベースイメージ名 /sbin/init

投稿2019/10/18 02:43

編集2019/10/18 05:50
Y.H.

総合スコア7918

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aimk

2019/10/18 05:12

Y.H.様 ご回答ありがとうございます。 3389listenしてませんでしたので、新規にdocker runしましたが、状況変わりませんでした。 firewallコマンドも変わらずエラーになります。
aimk

2019/10/18 05:22

Y.H.様 下記のコマンドを実行しました。 docker run --privileged -d -p 8080:80 -p 3389:3389 --name コンテナ名 ベースイメージ名 /sbin/init
Y.H.

2019/10/18 05:43

tigervnc-serverなどのvncサーバーはインストールされてますか?xrdpの動作に必要です。 sudo yum install tigervnc-server -y
aimk

2019/10/18 06:28 編集

Y.H.様 ありがとうございます。 tigervnc-serverもインストールしていなかったのでしました。 が、状況変わりません。
Y.H.

2019/10/18 06:27

sudo systemctl status xrdp でrunningになってますか?
aimk

2019/10/18 06:29

Y.H.様 先ほどの追記コメント編集させていただきました。 xrdpは、active(running)になっています。
Y.H.

2019/10/21 02:20

「Docker Toolbox」の記載を見逃してました。 yukky1201さんの回答で行けると思います。
aimk

2019/10/21 05:34

Y.H.様 度々のアドバイス、ありがとうございます。 おっしゃる通りでして、yukky1201様へのコメントにも記載させていただきましたが、 ポートフォワーディングの設定が不足していたことと、リモートデスクトップ接続の方法誤りによるものでした。
aimk

2019/10/21 06:11

Y.H.様 追加でお尋ねしたくお願いします。 tigervnc-serverですが、インストールしかしておりません。 インストール後の設定は必要なものでしょうか?
aimk

2019/10/23 07:00

ちなみに起動しているサービス一覧を確認してみると、「vncserver@.service」は起動しているのですが、 「sudo systemctl status vncserver@:1.service」で確認すると下記のように表示されます。 [root@d341d72d78f3 tmp]# sudo systemctl status vncserver@:1.service vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; enabled; vendor p reset: disabled) Active: failed (Result: exit-code) since Wed 2019-10-23 06:23:56 UTC; 33min a go Process: 131 ExecStart=/usr/sbin/runuser -l <USER> -c /usr/bin/vncserver %i (c ode=exited, status=1/FAILURE) Process: 122 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2 >&1 || : (code=exited, status=0/SUCCESS) Oct 23 06:23:55 d341d72d78f3 systemd[1]: Starting Remote desktop service (VN.... Oct 23 06:23:56 d341d72d78f3 runuser[131]: runuser: user <USER> does not exist Oct 23 06:23:56 d341d72d78f3 systemd[1]: vncserver@:1.service: control proce...1 Oct 23 06:23:56 d341d72d78f3 systemd[1]: Failed to start Remote desktop serv.... Oct 23 06:23:56 d341d72d78f3 systemd[1]: Unit vncserver@:1.service entered f.... Oct 23 06:23:56 d341d72d78f3 systemd[1]: vncserver@:1.service failed. Hint: Some lines were ellipsized, use -l to show in full.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問