No description
| debian | ||
| workspace | ||
| docker-compose.yml | ||
| README.md | ||
Debian + DinD compose
docker-compose.yml은 두 개의 서비스를 띄웁니다.
dind: Docker-in-Docker 엔진debian:Dockerfile로 빌드되는 Debian 컨테이너.dockerCLI와sshd가 미리 설치되어 있고, 일반 실행과 SSH 세션 모두DOCKER_HOST=tcp://dind:2375로dind엔진에 연결됩니다.debian의 로그인 유저 설정은docker-compose.yml에 고정되어 있습니다.- 기본값은
SSH_USER=dev,SSH_PASSWORD=devpass,USER_ID=1000,GROUP_ID=1000입니다. SSH_PASSWORD는 unset일 때만 기본값devpass를 사용합니다. 빈 문자열로 넘기면 비밀번호 로그인이 비활성화됩니다.- 공개키는
SSH_AUTHORIZED_KEYS(문자열) 또는SSH_AUTHORIZED_KEYS_FILE(컨테이너 내부 파일 경로)로 주입할 수 있습니다.
실행
docker-compose up --build -d
다른 UID/GID를 쓰려면 docker-compose.yml의 USER_ID, GROUP_ID 값을 직접 수정하면 됩니다.
비밀번호 로그인을 끄고 키 기반 로그인만 쓰려면 예를 들어 아래처럼 실행하면 됩니다.
SSH_PASSWORD= \
SSH_AUTHORIZED_KEYS="$(cat ~/.ssh/id_ed25519.pub)" \
docker-compose up --build -d
호스트 파일을 마운트해서 authorized_keys를 주입할 수도 있습니다.
services:
debian:
environment:
SSH_PASSWORD: ""
SSH_AUTHORIZED_KEYS_FILE: /run/authorized_keys
volumes:
- ./ssh/authorized_keys:/run/authorized_keys:ro
접속
ssh dev@localhost -p 2222
기본 비밀번호는 devpass입니다. SSH_PASSWORD를 빈 문자열로 두면 비밀번호 인증이 꺼지고, 이 경우에는 주입한 공개키가 있어야 접속할 수 있습니다.
컨테이너 내부에서 Docker 확인
docker info
docker ps