Qui è solo una risposta parziale. La limitazione è che non include la parte per lampeggiare il sistema operativo, i driver e il file system.
Dopo che il sistema operativo e il file system di base sono stati caricati e installati sul modulo TX2 di destinazione, è possibile accedere a TX2 tramite una porta di rete su ssh. Quindi l'host di Ubuntu ha solo bisogno di: Ottenere una GUI con capacità sudo e accesso alla rete. Per impostazione predefinita, un contenitore finestra mobile ha la possibilità di connettersi alla rete a cui l'host può connettersi. Per ottenere una GUI, ci sono alcuni approcci. Di seguito è riportato l'approccio X-over-ssh con l'aiuto di due script. Lo script include operazioni per aggiungere anche l'utente corrente al gruppo sudo.
Esegui il primo script per creare un'immagine docker Ubuntu personalizzata per l'esecuzione del programma di installazione di JetPack 3.1. Quindi eseguire il secondo script per creare un contenitore finestra mobile con nome utente e password statici e installare l'account utente host home nella home dell'utente del guest del contenitore.
Il primo script per creare un'immagine docker:
# current uid and gid
curr_uid=`id -u`
curr_gid=`id -g`
# create bb.dockerfile:
cat << EOF2 > bb.dockerfile
FROM ubuntu:xenial-20180417
ARG UNAME=testuser
ARG UID=1000
ARG GID=1000
RUN groupadd -g \$GID \$UNAME
RUN useradd -m -u \$UID -g \$GID -s /bin/bash \$UNAME
RUN apt-get update
RUN apt-get install -y openssh-server openssh-client iputils-ping sudo
RUN apt-get install -y lsb-release libgtk2.0 xterm vim rsync sshpass
RUN mkdir /var/run/sshd
RUN echo 'testuser:screencast' | chpasswd
RUN sed -i -e '/sudo/ s/$/testuser/' /etc/group
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
EOF2
docker build --build-arg UID=${curr_uid} --build-arg GID=${curr_gid} \
-f bb.dockerfile -t testimg .
L'ultimo CMD
di solito può essere sostituito da questi due se non si esegue a sshd
servizio:
USER \$UNAME
CMD /bin/bash
Il secondo script per creare il contenitore:
docker run -it -d \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $HOME:/home/testuser \
-p 2022:22 \
--name testcontainer -P testimg
Per accedere al contenitore ospite di Ubuntu, esegui sull'host utilizzando la password screencast
:
ssh -l testuser -p 2022 -X localhost