FC2カウンター FPGAの部屋 2019年02月12日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Docker でGUIを立ち上げる+sudoを使う方法

Docker でGUIを立ち上げる方法は@basaro_k さんのツィートから知ったのだが、”Docker で GUI アプリケーションを実行する方法”を参考にした。Docker でGUI アプリケーションを実行するやり方についてはこの記事を参考にして欲しい。

Docker で sudo を使用するには、”Dockerコンテナ内にsudoユーザを追加する”を参考にして行った。

Ubuntu 18.04 のホーム・ディレクトリの下にDocker ディレクトリを作り、その下に ubuntu16gui ディレクトリを作成した。
ubuntu16gui ディレクトリにDockerfile を作成した。
Docker ファイルを示す。

FROM ubuntu:16.04
 
RUN apt-get update && apt-get install -y x11-apps
RUN apt-get install -y sudo
 
# Replace 1000 with your user / group id
ARG uid=1000
ARG gid=1000
RUN groupadd -g ${uid} masaaki && \
    useradd -u ${gid} -g masaaki -G sudo -r masaaki && \
    mkdir /home/masaaki && \
    chown ${uid}:${gid} -R /home/masaaki

RUN echo 'Defaults visiblepw'             >> /etc/sudoers
RUN echo 'masaaki ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

USER masaaki
WORKDIR /home/masaaki


build.sh を示す。

docker build -t ubuntu16gui .


ubuntu16gui イメージを作成する。

boot.sh を示す。

docker run -ti --rm --name ubuntu16gui -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix ubuntu16gui /bin/bash


./build.sh を起動して ubuntu16gui イメージを生成した。
./boot.sh を起動した。
nautilus & を起動したが、 command not found だった。
sudo apt install nautilus を実行した。
docker_ce_3_190211.png

もう一度、nautilus & を起動した。
docker_ce_4_190211.png

nautilus が起動した。
docker_ce_5_190211.png

ここで、ubuntu16gui イメージのコンテナから exit すると、インストールしたnautilus が無くなってしまう。

ubuntu16gui イメージに nautilus を追加したのだが、起動する時に --rm オプションが付いているので、ubuntu16gui イメージのコンテナから exit するとコンテナも切られてしまう。よって、 nautilus を追加した状態で exit する前に別の端末でコンテナをubuntu16gui イメージに書き戻す。
docker commit ubuntu16gui ubuntu16gui docker commit <コンテナ名> <イメージ名>
docker_ce_6_190211.png

nautilus を追加した状態で ubuntu16gui イメージに書き戻しておくと、次に ubuntu16gui イメージを起動した時に、そのまま nautilus を起動することができる。
docker_ce_7_190211.png
  1. 2019年02月12日 08:28 |
  2. Docker
  3. | トラックバック:0
  4. | コメント:1