#1. 問題
単純にdockerで環境を作成すると、当然のことながらxserverも何も入っていないので、docker内部でエディタを起動したりGUIを起動しても表示されない。そこでdockerでx11-forwardingを行って、自分の画面にdocker上で動いているアプリケーションの画面を出力させたい。
#2. 方法
答えは以下のページの通り。
docker-compose.ymlを次のように書けばよい(引用、versionのみ変更)
version: '3'
services:
test:
build: .
command: /bin/bash
environment:
DISPLAY: $DISPLAY
volumes:
- /tmp/.X11-unix:/tmp/.X11-unix
- ~/.Xauthority:/root/.Xauthority
network_mode: "host"
volumesでx関連のものを指定し、network_modeで"host"を指定すればよい。
#3. dockerへのアクセス方法
上記のような場合、docker内部へアクセスするには次のようにうてばよいと思われる。
docker-compose exec ${container_name} /bin/bash
コンテナの名前を指定すればよいので、上記の例では、例えばcontainer_name="test"
のようになる。またこの例ではbashが開かれる。