hirosanote’s blog

検証環境の構築手順やネットワーク機器のテスト結果、関連する事について記載します。このブログは個人で行っており、所属する会社とは関係ありません。

CentOSでDockerを使用したリモートデスクトップの構築

GNOMEデスクトップがインストールされているDockerコンテナを作成し、Windows PCからRDP接続する環境を構築する手順です。

 

Dockerは、ハイパーバイザーとは異なりホストOSのカーネルを共有するため、ディスクやメモリの使用が少なくすみ、起動も速くなります。

イメージから作成したコンテナは削除でき、必要なときに新しいコンテナを再度作成することが出来ます。

よって、Windowsパソコンからインターネット接続する場合は、リモートデスクトップGNOMEデスクトップのコンテナにアクセスし、ログアウト後にコンテナを削除すれば跡形もなくなりますので、常にセキュアな環境でインターネットへアクセス出来ます。

 

環境

Fujitsu TX100s3 / 2TB HDD / 14GB Memory

CentOS7

 

1. サーバにCentOS7をインストール

CentOS7をサーバにインストールします。

 

2. ファイアウォールの停止

ファイアウォールを停止し、自動起動を無効化にします。

systemctl stop firewalld

systemctl disable firewalld

 

3. SElinuxを無効化

vi /etc/selinux/config

SELINUX=disabled

 

4. OSをアップデート

最新の状態にアップデートします。

yum update -y

 

5. リブート

リブートします。

reboot

 

6. Dockerのインストール

Dockerをインストールします。

 yum install -y docker 

 

7. サービスの起動

Dockerのサービスを起動します。

sudo systemctl start docker

sudo systemctl enable docker

 

8. CentOS7のDockerイメージの取得

以下のサイトより、イメージ名を確認します。

https://hub.docker.com/_/centos/

CentOS7の最新のタグ名は"latest"となっていますので、これを使用します。

f:id:hirosanote:20170405101052p:plain

  docker pull centos:latest

 取得したイメージを確認します。

docker images

 

9. GNOMEデスクトップのインストール

取得したイメージに、GNOMEデスクトップをインストールします。

コンテナを起動します。

docker run --privileged -d --name centos7-01 centos /sbin/init

docker exec -it centos7-01 /bin/bash

 起動すると、コンテナIDを含んだコンテナのプロンプトになります。

[root@c551b58042b4 /]#

コンテナにGNOMEデスクトップをインストールします。

 yum groupinstall -y "GNOME Desktop"

 

10. xrdpのインストール

Windows PCからRDP接続するために、xrdpをインストールします。

yum install -y epel-release

yum install -y xrdp

yum install -y tigervnc-server

自動起動を有効化にします。

systemctl enable xrdp.service

 

11. rootユーザーのパスワード設定

rootユーザーのパスワードを設定します。

passwd

12. コンテナを終了

exitコマンドで、終了します。

exit

 

13. コンテナのイメージ化

コンテナIDを確認します。

docker ps -a

確認したコンテナIDを使用し、イメージ化します。

docker commit a58466ce4e69 centos:desktop

 

14. イメージからコンテナを起動

イメージ化したファイルからコンテナを起動します。Windows RDPクライアントから接続するために、ポートフォワードの指定を行います。

docker run --name rdp01 -d -p 13389:3389 centos:desktop

 

 15. Windows RDPクライアントから接続

ポートフォワードで指定したポート番号とDockerが動作しているサーバのIP指定し、接続します。

ユーザーはrootを使用します。

f:id:hirosanote:20170405205041p:plain

 パスワードを入力します。

f:id:hirosanote:20170405205213p:plain

 

f:id:hirosanote:20170405205341p:plain

 

GNOMEデスクトップよりFireFoxを起動し、インターネットへアクセス出来ました。

日本語入力が出来なかったので、これは今後の課題として調査してみます。