Thinking of using udocker inside my fedora 35 proot-distro on termux
Dear Devs,
This is more of a question regarding use case. I use a centos 7 docker container to run ansys and similar programs on my fedora 35 (x86_64). I use docker and set up to load using this script:
#!/bin/bash
xhost +local:root
docker network ls | grep hostonly > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo Create host-only network for docker
docker network create -d bridge --internal hostonly
fi
#user should be a member of video and render to get full access to gpu
#export XAUTH_PROTO=$(xauth list | grep \hostname -s` | grep :0 |tail -1 |cut -d' ' -f3)`)
#export XAUTH_KEY=$(xauth list | grep \hostname -s` | grep :0 |tail -1 |cut -d' ' -f)5`)
#Do xauth list | grep unix:0
#inside docker shell xauth add :0 MIT-MAGIC... digest..
IMAGE=c7-systemd:latest
GIDS=( $(id -G) ) #All of my groups
unset GIDS[0] #remove primary group
for g in "${GIDS[@]}"
do
G+=" --group-add=$g"
done
#RM=""
RM=" --rm "
#U=""
U=" --user $(id -u):$(id -g) $G"
VOLS=' --volume=/etc/group:/etc/group:ro '
VOLS+='--volume=/etc/passwd:/etc/passwd:ro '
VOLS+='--volume=/etc/shadow:/etc/shadow:ro '
VOLS+='--volume=/etc/sudoers.d:/etc/sudoers.d:ro '
VOLS+='--volume=/tmp/.X11-unix:/tmp/.X11-unix:rw '
VOLS+="--volume=/home/Docker-Home/CentOS-7-x86_64/:/home "
VOLS+='--volume=/opt/Docker-Opt/CentOS-7-x86_64/:/opt '
VOLS+='--volume=/run/media/ai-fe:/mnt '
VOLS+="--device=/dev/dri "
VOLS+="--device=/dev/snd "
VOLS+="--device=/dev/vga_arbiter "
NVS=( $(ls /dev/nvidia* 2>/dev/null) )
for N in "${NVS[@]}"
do
VOLS+="--device=$N "
done
NET='--network=host '
docker run $RM -it --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro --log-driver none $U --env="DISPLAY" --env="XAUTHORITY=$XAUTHORITY" --env="XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR" $VOLS -w="/home/${USER}" --ipc="host" $NET -w="/home/$USER" --hostname="localhost" --name="CentOS7" ${IMAGE} /bin/bash
# EOF
I want to be able to use this container inside my proot distro for testing purposes. Now my question is how do I translate docker command flags to udocker? Can udocker run x86_64 containers on aarch64? If not can I use box64 translation (idea is to create an arm64 container for centos, build box64 inside container and run my x86_64 program there) ? I tried udocker on my pc and I haven't found away to commit container changes or tell the applications in container to use host xserver to display gui, is that possible?
Thank you!
P.S. can I run udocker through box64 itself to get x86 version of udocker on arm?