[ -d ~/workspace ] || mkdir ~/workspace
が存在しない場合、これはあなたのホームディレクトリにあるワークスペースディレクトリを作成します。
これはXウィンドウディスプレイに接続するために、ローカルマシンのrootユーザーを許可します。
docker run -i --net=host --rm -e DISPLAY -v $HOME/workspace/:/workspace/:z docbill/ubuntu-umake-eclipse
これは、次のオプションを持つコンテナを実行します:
-i
:このコマンドを実行した後に型指定されたインタラクティブ、入力が容器内の立ち上げプロセスによって受信されます。
--net=host
:ホストネットワーキングでは、コンテナは独立したネットワークスタックで起動されません。代わりに、ホストのすべてのネットワーキングインターフェイスは、コンテナ内で直接アクセスできます。
--rm
出口でコンテナを自動的にクリーンアップします。それ以外の場合、コンテナは停止状態のままです。
-e DISPLAY
ホストからのDISPLAY環境変数をコンテナに渡します。これはGUIプログラムに出力をどこに送るかを指示します。
-v $HOME/workspace/:/workspace/:z
ワークスペースフォルダをホスト上のホームディレクトリから、コンテナ内の/ workspaceフォルダにマッピングし、selinux共有設定を有効にします。
docbill/ubuntu-umake-eclipse
ドッカーハブのユーザーdocbillによって作成されたこのイメージを実行します(誰でもここにアカウントを作成できます)。これはドッカーからの公式画像ではなく、コミュニティから提出された画像です。
このコマンドは、RHELまたはCentOS Dockerホストで実行されているユーザー向けに設計されている可能性があります。 Windows用のDockerやMac用のDockerでは動作しませんが、Linuxの他のバリエーションでも動作します。
xhostとホストネットワーキングなしで、GUIでコンテナを実行するために同様のコマンドを使用しました。代わりに、私はXウィンドウソケット(/tmp/.X11-unix
)をコンテナに直接マッピングしました:
docker run -it --rm -e DISPLAY -u `id -u` \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /etc/localtime:/etc/localtime:ro \
my_gui_image