Я запускаю контейнер Docker главным образом в качестве изолированной среды разработки для языка R
. (Использование R
здесь ортогонально остальной части сообщения, т.е. Вы можете просто предположить любую общую программу, которая может выполняться в repl
-сегрессии.) Много раз это будет включать в себя такие вещи, как построение графика, создание графика и так далее; и мне нужно посмотреть
эти. Следовательно, я предпочел бы иметь возможность отображения графики, которую я создал в своем контейнере. Вот как я это делаю до сих пор. Сначала создаю a Dockerfile
. Оставляя тривиальные шаги, наиболее важными являются:
# Set root passwd
RUN echo "root:test" | chpasswd
# Add user so that container does not run as root
RUN useradd -m docker
RUN echo "docker:test" | chpasswd
RUN usermod -s /bin/bash docker
RUN usermod -aG sudo docker
ENV HOME /home/docker
RUN mkdir /var/run/sshd
RUN mkdir -p /var/log/supervisor
# copy servisord.conf which lists the processes to be spawned once this
# container is started (currently only one: sshd)
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
EXPOSE 22
CMD ["/usr/bin/supervisord"]
Я создаю изображение, а затем запускаю контейнер, используя:
docker run -d -p 127.0.0.1:5000:22 -h ubuntu-r -v /home/chb/files/Data:/home/docker/Data -P --name="rdev" ubuntu-r
и может затем ssh в мой контейнер:
ssh -X [email protected] -p 5000.
Это даст мне то, что я хочу. Но я хотел бы знать, есть ли еще один ресурсосберегающий способ получения графического/графического интерфейса из контейнера? (Я бы предпочел, если возможно, решения не включали бы vnc
.)