2018年4月20日金曜日

LXDでAtomとXfce Desktop環境、XRDPをインストールしたコンテナ(Ubuntu16.04)を構築する

Atomはオープンソースのテキストエディタです。
XRDPもインストールされているので、リモートデスクトップから接続することができます。ユーザはubuntu、パスワードもubuntuです。

〇Atomの画面


〇構築方法
LXDで以下のコマンドを実行して、AtomとXfce Desktop環境インストールされたコンテナを構築します。
lxc init ubuntu:16.04 lxdxfceatom
lxc config set lxdxfceatom user.user-data - < config.yml
lxc start lxdxfceatom

config.yml
#cloud-config

package_upgrade: true

hostname: lxdxfceatom
manage_etc_hosts: true

write_files:
  - path: /tmp/.xsessionrc
    content: |
      export LANG=ja_JP.UTF-8
      export GTK_IM_MODULE=fcitx
      export QT_IM_MODULE=fcitx
      export XMODIFIERS="@im=fcitx"
      sed -i -e "s/^EnabledIMList.*$/EnabledIMList=fcitx-keyboard-jp:True,mozc:True,fcitx-keyboard-us:False/" /home/ubuntu/.config/fcitx/profile
      fcitx -r -d &

  - path: /etc/default/keyboard
    content: |
      XKBMODEL="pc106"
      XKBLAYOUT="jp"
      XKBVARIANT=""
      XKBOPTIONS=""
      BACKSPACE="guess"

runcmd:
  - 'sed -i.bak -e "s#http://archive.ubuntu.com/ubuntu/#http://ftp.riken.jp/pub/Linux/ubuntu/#g" /etc/apt/sources.list'
  - 'localectl set-locale LANG=ja_JP.UTF-8'
  - 'localectl set-keymap jp106'
  - 'apt-get update'
  - 'apt-get -y install software-properties-common'
  - 'add-apt-repository ppa:hermlnx/xrdp'
  - 'apt-get update'
  - 'echo "export LANG=ja_JP.UTF-8" >> /home/ubuntu/.bash_profile'
  - "echo 'ubuntu:ubuntu' | chpasswd"
  - 'apt-get -y install xrdp fcitx-mozc xubuntu-desktop language-pack-ja language-pack-ja'
  - 'im-config -n fcitx'
  - 'mv /tmp/.xsessionrc /home/ubuntu'
  - 'chown -R ubuntu:ubuntu /home/ubuntu'
  - 'apt-get -y install  gvfs-bin git xdg-utils'
  - 'wget https://github.com/atom/atom/releases/download/v1.21.2/atom-amd64.deb'
  - 'dpkg -i atom-amd64.deb'
  - 'fcitx -r -d &'

final_message: "completed."

〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=3389 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

〇コンテナに入る
lxc exec lxdxfceatom /bin/bash

〇コンテナの停止
lxc stop lxdxfceatom

〇コンテナの削除
lxc delete lxdxfceatom


○関連情報
・Atomに関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿