Holgers Sammelsurium

Fotografie, Reisen, Nerdkrams

Dockerisiertes Debian mit SSH-Zugriff

Man kann sich ja äußerst flott einen Debian-Container erzeugen, darin eine Shell starten und so in der virtuellen Umgebung rumbasteln. Für den Fall, dass man aber mit VS Code oder einer anderen IDE im Container rumbasteln möchte, braucht es SSH Zugriff. Ich habe mir daher ein dockerfile geschrieben, welches das handelsübliche Debian-Image etwas aufbohrt:

FROM debian:bookworm-slim
ARG user=USERNAME
ARG pass=PASSWORT
RUN apt update && apt upgrade && apt install openssh-server sudo locales curl -y
RUN echo "de_DE.UTF-8 UTF-8" > /etc/locale.gen
RUN locale-gen
RUN useradd -rm -d /home/${user} -s /bin/bash -g root -G sudo -u 1000 ${user}
RUN echo ${user}:${pass} | chpasswd
ADD id_ed25519.pub /tmp
RUN mkdir /home/${user}/.ssh
RUN cat /tmp/id_ed25519.pub > /home/${user}/.ssh/authorized_keys
RUN cat /tmp/id_ed25519.pub > /root/.ssh/authorized_keys
EXPOSE 22
RUN service ssh start
CMD ["/usr/sbin/sshd","-D"]

Das dockerfile integriert den SSH-Server, fügt einen Nutzer samt Password hinzu und konfiguriert noch ein bisschen den Zeichensatz der Shell. Für etwas mehr Komfort wird auch noch ein RSA PubKey (id_ed25519.pub) ins Image kopiert und in die authorized_keys files des neuen Users und Root geschrieben. Mit docker build -t myDebian . wird das neue Image gebaut.

Man kann sich nun noch ein docker-compose.yml file stricken und mit docker-compose up -d seinen Container starten. Logischerweise auch mehrere, nur der Port 2222 muss auf einen freien Port gelegt werden.

version: '3.3'
services:
    debian:
      image: myDebian
      container_name: debian
      restart: unless-stopped
      ports:
        - '2222:22'
      volumes:
        - USERNAME:/home/USERNAME
        - root:/root
volumes:
  USERNAME:
  root:

Zugriff erfolgt dann ganz einfach über ssh -p 2222 localhost.

Man muss nur etwas aufpassen: docker-compose down würde den Container und sämtlichen darin enthaltenen State löschen. Also immer docker-compose stop nutzen. Zudem lassen sich einzelne Ordner des Containers als named volumes exportieren.

Last not least noch ein Bonus-Tipp für die Mac-User: Anstelle des herkömmlichen Docker Desktops kann man auf dem Mac die leichtgewichtige Alternative OrbStack nutzen. Ich habe das Tool seit ein paar Tagen am Start und finde es besser, leichter, schneller als „das Original“.


Beitrag veröffentlicht am

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert