DockerのUbuntuにデスクトップ環境を作成

いろいろ開発等をしているとWindowsに限界を感じ、Linux環境をつくることにしました。とはいっても、LinuxのCLIにとても慣れていないためデスクトップ環境を作ろうと。Oracle VM VirtualBoxに作るかDockerに作るか迷ったのですが、とりあえずDocker上に作りました。そのときの記録です。

記事[「Dockerに構築したLinuxにリモートデスクトップで接続する」](https://qiita.com/rs_/items/6af6fe4d7858950e2062)をおおいに参考にしながら、DockerでUbuntuデスクトップ環境をつくっています。

[日本人向けのUbuntuデスクトップ環境のDockerイメージ](https://github.com/uphy/ubuntu-desktop-jp)を使った方がより簡単なのですが、ブラウザだと操作性が悪そうなので、リモートデスクトップにしています。

#環境
|種類|バージョン|内容|
|:--|:--|:--|
|OS|Windows8 64bit |自宅環境なのでProfessionalでもないです|
|Oracle VM Virtual Box|5.2.22 |Docker Toolboxとしてインストール|
|Docker(Client)|18.03.0-ce||
|Docker(Server)|18.09.0|1回アップデートしたからClientより新しい？|


#構築手順
##Windows作業
### 1. Ubuntu Docker ImageのPullとコンテナ作成

```docker
docker pull ubuntu
docker run --name ubuntu-xrdp -it ubuntu bash
```

##Dockerコンテナ
### 2. パッケージリストの最新化

```bash
apt-get update
apt-get upgrade
```

### 3. xrdpのインストール
[xrdp](https://ja.wikipedia.org/wiki/Xrdp) はRDPプロトコルのフリーかつオープンソースのサーバー。

```bash
apt-get install xrdp
```

「The layout of keyboards varies per country, with some countries having multiple common layouts. Please select the country of origin for the keyboard of this computer.」とキーボードレイアウトを聞かれたので
「54. Japanese」を選択( 55. Japanese (PC-98)  ではなし)
「Please select the layout matching the keyboard for this machine.」に対しては
「 1. Japanese」を選択

### 4. lxdeのインストール 
[(LXDE (Lightweight X11 Desktop Environment)](https://ja.wikipedia.org/wiki/LXDE) はオープンソースのデスクトップ環境。

```bash
apt-get install lxde
```
「Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the time zones in which they are located.」と使用場所を聞かれたので以下を選択
「 6. Asia」
「 78. Tokyo」

### 5. デスクトップセッションの設定 
```bash
cd ~
echo lxsession -s LXDE -e LXDE > ~/.xsession
```

### 6. 日本語化モジュールのインストール(1/2)
ibus-mozcは「Google日本語入力（Google IME）」のオープンソース版。


```bash
apt-get install ibus-mozc
apt-get install language-pack-ja-base language-pack-ja

update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:ja
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8
export LC_CTYPE=ja_JP.UTF-8
source /etc/default/locale
```

### 6. 日本語化モジュールのインストール(2/2) 
途中でコマンドプロンプトに対する日本語表示でエラーとなってしまったのでGit Bashを使用。Git Bashで以下のコマンドでbash実行。

```bash
winpty docker container exec -it ubuntu-xrdp bash
apt-get install unifont
apt-get install synaptic
apt-get install scim-anthy
apt-get install fcitx-anthy
```

### 7. パスワード設定 
パスワード設定をして終了。

```bash
passwd
exit
```

##Windows作業
### 8. dockerコンテナをコミットし、ポート転送してコンテナ起動。
```bash
docker commit ubuntu-xrdp ubuntu-dt
docker run --name ubuntu-dt -p 13389:3389 -it ubuntu-dt bash
```

##Dockerコンテナ
### 9. xrdpの起動
```bash
/etc/init.d/xrdp stop
/etc/init.d/xrdp start
```

#Windowsからリモートログイン
##IPアドレスを確認
Docker Quickstart Terminalを起動してIPアドレスを確認します。
![10.DockerIP.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/1338a219-5248-b8e1-b5e2-bfcb8498c749.jpeg)

##RDP(Remote Desktop)
あとはRDP(Remote Desktop)を起動して先に確認したIPアドレスにポートを付加(8で指定したポート番号)。
![20.RDP01.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/359ca6f6-d4f7-aad1-adc0-7240cbafe251.jpeg)

rootユーザでログイン(7で設定したパスワード)。
![20.RDP02.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/0787724f-c64a-7e2a-a319-4a9fcece097e.jpeg)

ログインできました！
![20.RDP03.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/d6608096-4432-b131-5b83-9026e77917f7.jpeg)

私のPCが低スペックなこともあり、やはり結構、動作が重いので使うのやら・・・