私のDockerfileは次のようになります。
FROM centos:7
RUN mkdir -p /tmp/app_config
WORKDIR /tmp/app_config
COPY app/ /tmp/app_config
COPY ./app_init.sh /tmp/app_config/
…
CMD ["./app_init.sh"]
app_init.sh
これがあります。
#!/bin/bash
su - appuser -c /tmp/app_config/main &
このコンテナを実行すると、docker run -it app/two:0.3.4
次の結果が表示されます。Cannot open display :
ただし、以下を使用してこのコンテナを実行すると、docker run --rm --privileged -ti -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup d568052b2e7c /usr/sbin/init
ログインするように求められたら、su - appuser -c /tmp/app_config/main &
仮想マシンと同様に、このコマンドを手動で実行してアプリケーションを起動できます。
質問特権コンテナを実行せずにX Windowアプリケーションを実行する方法はありますか?
この展開は Kubernetes クラスタで実行する必要があるため、ここで特権コンテナを実行することはできません。これが最善のアプローチではないことを知っていますが、いくつかの厳しい要件があるので、いくつかの可能性を見つけてください。