Solución:
Entonces, solo desea trabajar dentro de un contenedor tal como lo haría dentro de una VM completa, ¿verdad? Luego, debe ejecutar un contenedor, adjuntar una pantalla (para ejecutar IDEA) y comenzar a configurar su entorno de desarrollo. Para la parte de visualización, probaría algunas respuestas dadas en ¿Puede ejecutar aplicaciones GUI en un contenedor de ventana acoplable ?. Hay algunas respuestas muy interesantes en este tema que muestran varios enfoques para ejecutar aplicaciones GUI dentro de un contenedor.
¿No debería ser el enfoque más bien: tener un repositorio local y un IDE local? En el repositorio tiene el archivo docker y, finalmente, docker-compose.yml, que activa el entorno necesario para ejecutar el proyecto. Monte su unidad local con fuentes en la ventana acoplable (volúmenes), de modo que los cambios realizados en su carpeta local se reflejen en la ventana acoplable, de manera similar en otra dirección.
Mire este ejemplo para Intellij IDEA CI y JDK8 basado en Alpine Linux (tomado aquí https://raw.githubusercontent.com/shaharv/docker/master/alpine/dev/Dockerfile)
# Alpine 3.8 C++/Java Developer Image
#
# For IntelliJ and GUI (X11), run the image with:
# $ XSOCK=/tmp/.X11-unix && sudo docker run -i -v $XSOCK:$XSOCK -e DISPLAY -u developer -t [image-name]
#
# Then run IntelliJ with:
# /idea-IC-191.6707.61/bin/idea.sh
FROM alpine:3.8
ENV LANG C.UTF-8
RUN set -ex &&
apk add --no-cache --update
# basic packages
bash bash-completion coreutils file grep openssl openssh nano sudo tar xz
# debug tools
gdb musl-dbg strace
# docs and man
bash-doc man man-pages less less-doc
# GUI fonts
font-noto
# user utils
shadow
RUN set -ex &&
apk add --no-cache --update
# C++ build tools
cmake g++ git linux-headers libpthread-stubs make
RUN set -ex &&
apk add --no-cache --update
# Java tools
gradle openjdk8 openjdk8-dbg
# Install IntelliJ Community
RUN set -ex &&
wget https://download-cf.jetbrains.com/idea/ideaIC-2019.1.1-no-jbr.tar.gz &&
tar -xf ideaIC-2019.1.1-no-jbr.tar.gz &&
rm ideaIC-2019.1.1-no-jbr.tar.gz
# Create a new user with no password
ENV USERNAME developer
RUN set -ex &&
useradd --create-home --key MAIL_DIR=/dev/null --shell /bin/bash $USERNAME &&
passwd -d $USERNAME
# Set additional environment variables
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
ENV JDK_HOME /usr/lib/jvm/java-1.8-openjdk
ENV JAVA_EXE /usr/lib/jvm/java-1.8-openjdk/bin/java