Can you run GUI applications in a Docker container?

前端 未结 22 2747
南旧
南旧 2020-11-22 06:12

How can you run GUI applications in a Docker container?

Are there any images that set up vncserver or something so that you can - for example - add an e

22条回答
  •  孤城傲影
    2020-11-22 06:31

    I just found this blog entry and want to share it here with you because I think it is the best way to do it and it is so easy.

    http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/

    PROS:
    + no x server stuff in the docker container
    + no vnc client/server needed
    + no ssh with x forwarding
    + much smaller docker containers

    CONS:
    - using x on the host (not meant for secure-sandboxing)

    in case the link will fail someday I have put the most important part here:
    dockerfile:

    FROM ubuntu:14.04
    
    RUN apt-get update && apt-get install -y firefox
    
    # Replace 1000 with your user / group id
    RUN export uid=1000 gid=1000 && \
        mkdir -p /home/developer && \
        echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd && \
        echo "developer:x:${uid}:" >> /etc/group && \
        echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \
        chmod 0440 /etc/sudoers.d/developer && \
        chown ${uid}:${gid} -R /home/developer
    
    USER developer
    ENV HOME /home/developer
    CMD /usr/bin/firefox
    

    build the image:

    docker build -t firefox .
    

    and the run command:

    docker run -ti --rm \
       -e DISPLAY=$DISPLAY \
       -v /tmp/.X11-unix:/tmp/.X11-unix \
       firefox
    

    of course you can also do this in the run command with sh -c "echo script-here"

    HINT: for audio take a look at: https://stackoverflow.com/a/28985715/2835523

提交回复
热议问题