以下、Docker for Macを使用してUbuntuのGui操作を可能にする手順を記載してみた。
◾️Docker for Macの導入
導入方法については、割愛。
◾️Socatの導入・起動
1)port6000番(コンテナのGUI操作を行うx11用のボート)を通して、ホスト側の画面がコンテナ内と通信できるようにするために
使用する。
$ brew install socat
2)下記コマンドで、port6000番(UnixのGUI操作を行うxquartz用のポート)への通信をホスト側のディスプレイで
表示するようにします。
forkは複数のコネクションを管理できるようにするオプションで、reuseaddrはポートを再利用可能にするオプションです。
$ socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
◾️Xquartzの導入・起動
1)最近のmacOSではデフォルトでは入っていないので、導入と起動を行う。
$ brew cask install xquartz
$ open -a XQuartz
◾️Dockerイメージの導入
$ docker pull ubuntu
◾️Dockerコンテナの作成・起動
1)dockerコンテナ側からMacにアクセスする際のホスト側のIPアドレスを取得します
$ ifconfig en0 | grep inet | awk '$1=="inet" {print $2}'
2)以下、上記で得たIPアドレスを記載して、dockerのコンテナの作成と起動を行なっていく。
$ docker run -it -e DISPLAY="xxx.xxx.xxx.xxx:0" ubuntu
(上記、アドレスは、先ほど取得したIPアドレスになる。)
◾️ホストにXサーバへの接続権限を付与
1)XquartzのGUIアプリのメニューバーから「Applications」→「Terminal」から開く。
2)下記のコマンドを実行し、ホストにXサーバーへの接続権限を与えます。
xhost XXX.xxx.xxx.xxx
(上記、アドレスは、先ほど取得したIPアドレスになる。)
◾️Dockerコンテナ内にGUIアプリを導入・起動
1)コンテナ内で以下を実行する。
# apt-get update
# apt-get install ubuntu-desktop
# exit
(コンテナを再起動するためexitを行う)
2)ホスト側でコンテナを再起動
docker restart CONTAINER_ID
3)対処のコンテナに入る。
docker run -it -e DISPLAY="xxx.xxx.xxx.xxx:0" ubuntu
4)以下、導入を行う。
# apt-get install nautilus
5)再起動したコンテナ内からファイルマネージャーを起動を行う。
# nautilus
<参照先>
https://qiita.com/ryoya-s/items/ee1daf9cab18c100c990
<参照先>
https://qiita.com/ryoya-s/items/ee1daf9cab18c100c990
0 件のコメント:
コメントを投稿