{"id":21448657,"url":"https://github.com/teddylee777/deepko","last_synced_at":"2025-08-20T11:28:20.224Z","repository":{"id":48540937,"uuid":"373897969","full_name":"teddylee777/deepko","owner":"teddylee777","description":"머신러닝/딥러닝(PyTorch, TensorFlow) 전용 도커입니다. 한글 폰트, 한글 자연어처리 패키지(konlpy), 형태소 분석기, Timezone 등의 설정 등을 추가 하였습니다.","archived":false,"fork":false,"pushed_at":"2023-12-16T17:27:41.000Z","size":368,"stargazers_count":63,"open_issues_count":0,"forks_count":17,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-05-08T00:18:59.261Z","etag":null,"topics":["cudf","deep-learning","docker","gpu","kaggle","lightgbm","machine-learning","python","pytorch","tensorflow","xgboost"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teddylee777.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-06-04T16:17:09.000Z","updated_at":"2024-04-08T06:36:46.000Z","dependencies_parsed_at":"2023-02-09T23:25:11.346Z","dependency_job_id":"2fa26e7f-f91d-4442-9633-1d118db757a2","html_url":"https://github.com/teddylee777/deepko","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teddylee777%2Fdeepko","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teddylee777%2Fdeepko/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teddylee777%2Fdeepko/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teddylee777%2Fdeepko/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teddylee777","download_url":"https://codeload.github.com/teddylee777/deepko/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225994698,"owners_count":17556830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cudf","deep-learning","docker","gpu","kaggle","lightgbm","machine-learning","python","pytorch","tensorflow","xgboost"],"created_at":"2024-11-23T03:16:09.877Z","updated_at":"2024-11-23T03:16:10.314Z","avatar_url":"https://github.com/teddylee777.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# deepko\n\n**deepko** (**DEEP** learning docker for **KO**rean) 는 \u003cu\u003e파이썬(Python) 기반의 데이터 분석 / 머신러닝 / 딥러닝 도커(docker)\u003c/u\u003e 입니다.\n\n- 파이썬 기반의 데이터 분석, 머신러닝, 딥러닝 프레임워크의 상호 의존성 충돌을 해결 후 배포합니다.\n\n- **한글 폰트(나눔폰트, D2Coding), 한글 자연어 처리(konlpy, soynlp, mecab 등)** 를 위한 라이브러리가 사전에 설치되어 있습니다.\n\n- **GPU** 를 지원합니다 (`LightGBM`, `XGBoost`, `PyTorch`, `TensorFlow`).\n\n- 도커를 통한 **빠른 설치와 실행**이 가능합니다.\n  \n\n## 개요\n\nTensorFlow 의 `tensorflow/tensorflow:2.x.x-gpu-jupyter` 의 도커를 베이스로 확장하여 GPU 전용 Docker파일(`gpu.Dockerfile`)을 구성하였습니다. \n\nTensorFlow에서 유지보수하고 있는 `tensorflow/tensorflow:2.x.x-gpu-jupyter` 도커의 경우 한글 형태소 분석기나 한글폰트, 그 밖에 PyTorch를 비롯한 여러 머신러닝/딥러닝 라이브러리가 제외되어 있기 때문에 필요한 라이브러리를 추가 설치하고 의존성에 문제가 없는지 확인한 후 배포하는 작업을 진행하고 있습니다.\n\n본 Repository를 만들게 된 계기는 안정적으로 업데이트 되고 있는 `tensorflow/tensorflow-gpu-jupyter`에 기반하여 한글 폰트(나눔폰트, D2Coding), 한글 자연어처리 패키지(konlpy, soynlp), 형태소 분석기(mecab), Timezone 등의 설정을 추가하여 별도의 한글 관련 패키지와 설정을 해줘야 하는 번거로움을 줄이기 위함입니다.\n\n- **GPU** 버전 도커 **Hub** 주소: [teddylee777/deepko](https://hub.docker.com/repository/docker/teddylee777/deepko)\n- **GitHub** 주소: [github.com/teddylee777/deepko](https://github.com/teddylee777/deepko)\n\n\n\n## 테스트된 도커 환경\n\n- OS: Ubuntu 20.04\n- GPU: RTX3090 x 2 way\n- **CUDA: 11.8** (2023년 09월 23일 업데이트)\n- Python (anaconda): 3.8\n\n## CUDA 11.8 업데이트 방법\n\n링크: https://teddylee777.github.io/linux/ubuntu2004-cuda-update/\n\n## 업데이트 내역\n\n업데이트 내역: https://github.com/teddylee777/deepko/wiki/%EB%B2%84%EC%A0%84-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8\n\n\n## 한글 관련 추가 패키지\n\n- apt 패키지 인스톨러 카카오 mirror 서버 추가\n- Nanum(나눔) 폰트, D2Coding 폰트 설치\n- matplotlib 에 나눔폰트, D2Coding 폰트 추가\n- mecab 형태소 분석기 설치 및 파이썬 패키지 설치\n- [konlpy](https://konlpy-ko.readthedocs.io/ko/v0.4.3/): 한국어 정보처리를 위한 파이썬 패키지\n- soynlp: 한국어 자연어 처리를 위한 파이썬 패키지\n- `jupyter_notebook_config.py` : Jupyter Notebook 설정 파일 추가\n\n\n\n## 설치된 주요 라이브러리\n\n```\nalbumentations                1.3.1\nbeautifulsoup4                4.12.2\ncatboost                      1.2.1.1\nchromadb                      0.4.10\ndask                          2023.7.1\ndatasets                      2.14.5\nfastai                        2.7.12\nfolium                        0.14.0\ngensim                        4.3.2\ngraphviz                      0.20.1\nhuggingface-hub               0.16.4\nhyperopt                      0.2.7\njupyter                       1.0.0\njupyterlab                    4.0.6\nkaggle                        1.5.16\nkeras                         2.13.1\nkonlpy                        0.6.0\nlangchain                     0.0.295\nlibrosa                       0.10.1\nlightgbm                      4.1.0\nmatplotlib                    3.8.0\nmecab-python3                 1.0.7\nmissingno                     0.5.2\nmlxtend                       0.22.0\nnltk                          3.8.1\nnotebook                      7.0.3\nnumpy                         1.24.3\nopenai                        0.28.0\nopencv-python                 4.8.0.76\noptuna                        3.3.0\npandas                        1.5.3\npeft                          0.6.0.dev0\npinecone-client               2.2.4\nplotly                        5.17.0\nprophet                       1.1.4\nPyMySQL                       1.1.0\npypdf                         3.16.1\nscikit-learn                  1.3.0\nscipy                         1.11.2\nseaborn                       0.12.2\nsentencepiece                 0.1.99\nshap                          0.42.\nsoynlp                        0.0.493\nsoyspacing                    1.0.17\nspacy                         3.6.1\nSQLAlchemy                    2.0.21\nstatsmodels                   0.14.0\ntensorboard                   2.13.0\ntensorboardX                  2.6.2.2\ntensorflow                    2.13.0\ntiktoken                      0.5.1\ntokenizers                    0.14.0\ntorch                         2.0.0\ntorchaudio                    2.0.2+cu118\ntorchtext                     0.15.1\ntorchvision                   0.15.2\ntransformers                  4.34.0.dev0\nwandb                         0.15.10\nxgboost                       2.0.0\n```\n\n\n## GPU 지원 라이브러리\n\n다음의 라이브러리에 대하여 **GPU를 지원**합니다.\n\n1. `LightGBM` (4.1.0)\n2. `XGBoost` (2.0.0)\n3. `PyTorch` (2.0.0) + CUDA 11.8\n4. `TensorFlow` (2.13.0) + CUDA 11.8\n\n\n\n## 실행 방법\n\n### STEP 1: Docker가 사전에 설치되어 있어야 합니다.\n\n도커의 설치 및 사용법에 대하여 궁금하신 분들은 [Docker를 활용하여 딥러닝/머신러닝 환경 구성하기](https://teddylee777.github.io/linux/docker%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-%EB%94%A5%EB%9F%AC%EB%8B%9D-%ED%99%98%EA%B2%BD%EA%B5%AC%EC%84%B1.md) 글을 참고해 주세요.\n\n```bash\n# step 1: apt-get 업데이트\nsudo apt-get update\n\n# step 2: 이전 버젼 제거\nsudo apt-get remove docker docker-engine docker.io\n\n# step 3: 도커(Docker) 설치 \nsudo apt install docker.io\n\n# step 4: 도커 서비스 시작\nsudo systemctl start docker\nsudo systemctl enable docker\n\n# step 5: 잘 설치 되어있는지 버젼 체크\ndocker --version\n```\n\n\n\n### STEP 2: 도커 이미지 pull 하여 서버 실행\n\n상황에 따라 다음 4가지 중 하나의 명령어를 실행하여 도커를 실행합니다. 세부 옵션은 아래를 참고해 주세요.\n\n- `--rm`: 도커가 종료될 때 컨테이너 삭제\n\n- `-it`: 인터랙티브 TTY 모드 (디폴트로 설정)\n\n- `-d`: 도커를 백그라운드로 실행\n\n- `-p`: 포트 설정. **local 포트:도커 포트**\n\n- `-v`: local 볼륨 마운트. **local 볼륨:도커 볼륨**\n\n- `--name`: 도커의 별칭(name) 설정\n\n  \n\n1. `Jupyter Notebook` 을 **8888번 포트로 실행**하려는 경우\n\n```bash\ndocker run --runtime nvidia --rm -it -p 8888:8888 teddylee777/deepko:latest\n```\n\n\n\n2. `jupyter notebook` 서버 실행과 동시에 **로컬 volume 마운트**\n\n```bash\ndocker run --runtime nvidia --rm -it -p 8888:8888 -v /data/jupyter_data:/home/jupyter teddylee777/deepko:latest\n```\n\n\n\n3. 도커를 **background에서 실행**하는 경우 (터미널을 종료해도 서버 유지)\n\n```bash\ndocker run --runtime nvidia --rm -itd -p 8888:8888 teddylee777/deepko:latest\n```\n\n\n\n4. 도커를 실행 후 **bash shell로 진입**하려는 경우\n\n```bash\ndocker run --runtime nvidia --rm -it -p 8888:8888 teddylee777/deepko:latest /bin/bash\n```\n\n\n\n**[참고]**\n\n`jupyter_notebook_config.py` 을 기본 값으로 사용하셔도 좋지만, 보안을 위해서 **비밀번호 설정**은 해주시는 것이 좋습니다.\n\n**비밀번호 설정** 방법, **방화벽 설정** 방법은 [Docker를 활용하여 딥러닝/머신러닝 환경 구성하기](https://teddylee777.github.io/linux/docker%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-%EB%94%A5%EB%9F%AC%EB%8B%9D-%ED%99%98%EA%B2%BD%EA%B5%AC%EC%84%B1.md) 글의 STEP 5, 7을 참고해 주세요.\n\n\n\n## [선택] .bashrc에 단축 커멘드 지정\n\n`~/.bashrc`의 파일에 아래 커멘드를 추가하여 단축키로 Docker 실행\n\n\n```bash\nkjupyter{\n    docker run --runtime nvidia --rm -itd -p 8888:8888 -v /data/jupyter_data:/home/jupyter --name dl-ko teddylee777/deepko:preview\n}\n```\n\n 위와 같이 `~/.bashrc` 파일을 수정 후 저장한 뒤 `source ~/.bashrc`로 파일의 내요을 업데이트 합니다.\n\n추후, 긴 줄의 명령어를 입력할 필요 없이 단순하게 아래의 명령어로 도커를 백그라운드에서 실행 할 수 있습니다.\n\n```bash\nkjupyter\n```\n\n\n\n\n\n---\n\n\n\n**추가 파이썬 패키지 설치 제안은 issue 에 남겨주세요!**\n\n감사합니다.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteddylee777%2Fdeepko","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteddylee777%2Fdeepko","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteddylee777%2Fdeepko/lists"}