LoginSignup
1
0

More than 1 year has passed since last update.

Docker コンテナ上でGUIアプリケーションを動かす(日本語入力)

Last updated at Posted at 2021-01-18

LinuxMint-21.1 Docker-20.10.12 ubuntu(docker)(20.04)

目的

Docker上でGUIアプリケーションを日本語入力可能な状態で動かします。
画面の表示にX11を使うため、Linuxのみで実行可能です。

実行

今回解説するDockerイメージを使って。VSCodeとfirefoxを動かしてみています。

実行方法

firefoxを実行する場合を例に解説します。

Dockerfileの作成

下記の内容をDockerfileという名前のテキストファイルとして保存します。
firefoxを実行するためのDockerファイル
やっていることは、firefoxと関連パッケージのインストール、起動時に実行するコマンドの変更だけです。

作成したら、コンテナイメージを作成します。
(作成済みのコンテナイメージはDockerHubにsabotagecla6/firefoxという名前でPushしています。
 firefoxを利用したい場合は、そのコンテナイメージをそのまま利用して貰えばよいです。)

コンテナイメージの作成

Dockerfileをおいているディレクトリをカレントディレクトリに設定して下記のコマンドを実行します。

ビルドコマンド
sudo docker build ./ -t tmp-firefox

コンテナの起動

コンテナの起動
sudo docker run --net=bridge --shm-size=4096m \
-u $(id -u):$(id -g) \
-v /run/user/1000/pulse/native:/tmp/pulse/native \
-v ~/.config/pulse/cookie:/tmp/pulse/cookie:ro \
-e PULSE_COOKIE=/tmp/pulse/cookie -e PULSE_SERVER=unix:/tmp/pulse/native \
-v /tmp/.X11-unix/X0:/tmp/.X11-unix/X0 -e DISPLAY \
-e USER=firefox -e PASSWD=firefox
--rm tmp-firefox

上記コマンドの3行目〜5行目は音を出すためのホストマシンとコンテナ間のファイルの共有とコンテナ環境変数の設定
6行目はコンテナの画面をホスト側に表示するための設定
7行目はコンテナ内のユーザーのユーザーとパスワードを指定します。
省略するとユーザー:パスワードはubuntu:ubuntuになります。
8行目はコンテナの終了の度にコンテナを破棄するための設定です。
ユーザーはホストと同じユーザーID・グループIDを使用しないと音を出さないため、合わせています。

aliasの利用

実行するコマンドかなり長いので、aliasを切っておくと扱いやすいです。

~/.bashrcに下記のコードを追加するとよいです。

~/.bashrc
alias docker-firefox='docker-display --rm sabotagecla6/firefox'
alias docker-display='docker-sound -v /tmp/.X11-unix/X0:/tmp/.X11-unix/X0 -e DISPLAY'
alias docker-sound='sudo docker run --net=bridge --shm-size=4096m -u $(id -u):$(id -g) -v /run/user/1000/pulse/native:/tmp/pulse/native  -v ~/.config/pulse/cookie:/tmp/pulse/cookie:ro -e PULSE_COOKIE=/tmp/pulse/cookie -e PULSE_SERVER=unix:/tmp/pulse/native'

参考記事

Docker コンテナ内のアプリで日本語入力をする方法

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0