研究室など特定のファイアウォール内で利用する前提のDocker+JupyterHub環境の設定
リポジトリクローン後に、リポジトリ内で
docker-compose up
でJupyterhub用のコンテナが起動し、localhost:8000でアクセスできる。
Docker内で、DockerSpawnerでJupyterを起動するJupyterHubを起動。
アドミンアカウントはserveradmin(passは最初にログインしたときに決定)
Authはjupyterhub-firstuseauthenticatorを採用しており、ユーザー作成後に最初にログインするパスワードを利用するため、外部公開するような場合には適していない。 (そもそもJupyterhub自体外部公開は適していない)
外部(ホスト)のDocker権限をDocker内のDokcerSpawnnerに与えることで、ユーザーごとのDocker環境を構築可能
起動するイメージの変更やGPUを使うかなど設定をできるようにしている。
![image](https://private-user-images.githubusercontent.com/43844864/292801198-6af76d1c-a05d-40fb-a510-973e76d39638.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MjI0MTcsIm5iZiI6MTczOTUyMjExNywicGF0aCI6Ii80Mzg0NDg2NC8yOTI4MDExOTgtNmFmNzZkMWMtYTA1ZC00MGZiLWE1MTAtOTczZTc2ZDM5NjM4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDA4MzUxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZlMzQ3YThjZjE2NGM0ZjM0MmJkNWQ0ZDljNGVhZTU4Y2U3Mjk3NDc5ZGMxYjQ0MTJkNmE1NjVhMGZmODUwM2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.RQ1NKVyJiFS56W4slP4HeqM31oo4tcuEJZLofhDGPas)
なおJupyterhubで起動できるイメージを事前にインストールしておく必要があり、
https://hub.docker.com/r/jupyter/base-notebook/tags
などで見つけられる。
GPU対応のコンテナの作り方はいろいろあるのでその通りに作ればいける。
https://qiita.com/taiyodayo/items/76f702b5facb9beca5e5
デフォルトでリポジトリ内のworkspace内にそれぞれのユーザーのフォルダを作成し、mnt_workspaceという名前でそれぞれの環境でマウントしている(はず)