change ssh image to alpine

This commit is contained in:
Jaewook Lee
2024-08-20 02:10:48 +09:00
parent 217d0d45db
commit cc03bc959b

View File

@@ -154,18 +154,49 @@ cd .jupyter
cat <<"EOF" > docker-compose.yml cat <<"EOF" > docker-compose.yml
services: services:
jupyter: jupyter:
image: linuxserver/openssh-server image: alpine
container_name: jupyter container_name: jupyter
restart: unless-stopped restart: unless-stopped
stop_grace_period: 0s stop_grace_period: 0s
network_mode: host network_mode: host
volumes: volumes:
- $HOME/.ssh:/root/.ssh - $HOME/.ssh:/root/.ssh
entrypoint: ssh $USER@localhost '~/.venv/bin/jupyter lab --IdentityProvider.token=""' entrypoint: sh -c
command:
- |
apk add openssh-client
ssh $USER@localhost '~/.venv/bin/jupyter lab --IdentityProvider.token=""'
EOF EOF
docker compose up -d # Jupyter 서버 시작 docker compose up -d # Jupyter 서버 시작
``` ```
1. `image: alpine`: 가벼운 Alpine Linux 이미지를 사용합니다.
2. `container_name: jupyter`: 컨테이너 이름을 'jupyter'로 지정합니다.
3. `restart: unless-stopped`: 컨테이너가 중지되지 않는 한 항상 재시작합니다.
4. `stop_grace_period: 0s`: 컨테이너 중지 시 즉시 종료합니다.
5. `network_mode: host`: 호스트의 네트워크를 직접 사용합니다.
6. `volumes: - $HOME/.ssh:/root/.ssh`: SSH 키를 컨테이너와 공유합니다.
7. `entrypoint: sh -c`: 쉘 명령을 실행할 수 있게 합니다.
8. `command:`:
- `apk add openssh-client`: SSH 클라이언트를 설치합니다.
- `ssh $USER@localhost '~/.venv/bin/jupyter lab --IdentityProvider.token=""`': SSH를 통해 Jupyter Lab을 실행합니다.
이 설정은 다음과 같은 이점이 있습니다:
- Alpine 이미지를 사용하여 가볍습니다.
- SSH 키를 호스트와 공유하여 인증 문제를 해결합니다.
- 호스트 네트워크를 사용하여 localhost 접근이 가능합니다.
- 컨테이너가 자동으로 재시작되어 안정성을 높입니다.
```sh ```sh
docker compose logs -f # 서버 상태 보기 & Ctrl+C로 나오기 docker compose logs -f # 서버 상태 보기 & Ctrl+C로 나오기
@@ -173,3 +204,4 @@ cd ~/.jupyter && docker compose down # 서버 종료
``` ```
- 만약 `6. WSL background 실행``9. Windows 재부팅시 Jupyter Lab 자동시작` 모두 정확히 설정되었다면 윈도우를 재부팅하고 바로 localhost:8888에 접속할 수 있게 된다. - 만약 `6. WSL background 실행``9. Windows 재부팅시 Jupyter Lab 자동시작` 모두 정확히 설정되었다면 윈도우를 재부팅하고 바로 localhost:8888에 접속할 수 있게 된다.