Skip to content

Commit fc50ca6

Browse files
committed
added docker user guide / contributing / run jupyter notebook
1 parent 99228a4 commit fc50ca6

File tree

3 files changed

+276
-0
lines changed

3 files changed

+276
-0
lines changed

CONTRIBUTING.md

+131
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# ‘모두가 만드는 모두를 위한 딥러닝’ 참여 방법!! (Contribution)
2+
3+
## Precheck steps : 사전 확인
4+
5+
* 작업을 시작하기 전에 먼저 이슈를 남겨 두세요. 왜냐면
6+
* 여러분이 무엇을 하고 있는지 사람들에게 알리는 데 도움이 됩니다.
7+
* 제안하는 문제가 이 Repo와 무관할 수 있습니다.
8+
* 그런 방식으로 코드를 유지하는 게 우리의 의도일 수도 있습니다. ([KISS](https://en.wikipedia.org/wiki/KISS_principle))
9+
* 여러분은 Git을 어떻게 사용하는지 알아야합니다.
10+
* 그렇지 않다면, "Git 사용 방법"을 검색한 후, 무언가를 하기 전에 그것들을 읽어 보세요. 개발자로서 살아남기 위해서는 필수적인 기술입니다.
11+
* [Git tutorial](https://try.github.io/levels/1/challenges/1)을 참고하세요.
12+
13+
## Contribution guidelines
14+
15+
이 문서는 Contribution 프로세스를 안내합니다.
16+
17+
### Step 1: Fork
18+
19+
Fork 버튼을 눌러 [GitHub](https://github.com/deeplearningzerotoall/PyTorch.git)에 프로젝트를 Fork하세요. 이 단계는 작업을 시작할 수 있게 여러분의 계정에 복사하게 됩니다.
20+
21+
### Step 2: Local computer에 다운로드하세요
22+
23+
```bash
24+
$ git clone https://github.com/`YOUR_GITHUB_NAME`/PyTorch.git
25+
$ cd TensorFlow
26+
```
27+
28+
### Step 3: Setup an upstream
29+
30+
변경 사항이 있을 경우, 쉽게 Pull할 수 있도록 이 Repo에 대한 링크를 설정해야 합니다.
31+
32+
```bash
33+
$ git remote add upstream https://github.com/deeplearningzerotoall/PyTorch.git
34+
```
35+
36+
저장소에 업데이트가 있는 경우 로컬 복사본과 repository 를 업데이트할 수 있습니다.
37+
38+
```bash
39+
$ git pull upstream master && git push origin master
40+
```
41+
42+
### Step 4: Make a branch
43+
44+
Master branch는 Pull Request들을 계속 병합되고 수정되기 때문에 Master branch를 직접 수정하지는 않는 게 좋습니다.
45+
46+
그리고 의미 있는 이름으로 Branch를 만드는 걸 잊지마세요!
47+
48+
49+
Example:
50+
```bash
51+
$ git checkout -b hotfix/lab10 -t origin/master
52+
```
53+
54+
새로운 Branch를 만든 후에 자유롭게 코드를 수정하세요!
55+
56+
**주의: 여러분 제안한 Issue와 관련이 없는 다른 것들을 고치고 마세요!**
57+
58+
만약에 다른 문제가 있다면, 따로 이슈를 제안하시길 바랍니다.
59+
60+
### Step 5: Commit
61+
62+
이메일/사용자 이름을 설정하세요.
63+
64+
```bash
65+
$ git config --global user.name "Sung Kim"
66+
$ git config --global user.email "[email protected]"
67+
```
68+
69+
그리고 필요한 파일을 추가 후, Commit 하세요.
70+
```bash
71+
$ git add my/changed/files
72+
$ git commit
73+
```
74+
75+
Notes
76+
* 다른 사람들도 알아 볼 수 있게 명확한 Commit 메시지를 쓰세요!
77+
78+
* 예시:
79+
```text
80+
Short (50 chars or less) summary of changes
81+
82+
More detailed explanatory text, if necessary. Wrap it to about 72
83+
characters or so. In some contexts, the first line is treated as the
84+
subject of an email and the rest of the text as the body. The blank
85+
line separating the summary from the body is critical (unless you omit
86+
the body entirely); tools like rebase can get confused if you run the
87+
two together.
88+
89+
Further paragraphs come after blank lines.
90+
91+
- Bullet points are okay, too
92+
93+
- Typically a hyphen or asterisk is used for the bullet, preceded by a
94+
single space, with blank lines in between, but conventions vary here
95+
```
96+
97+
### Step 6: (Optional) Rebase your branch
98+
99+
수정이 평소보다 더 오래 걸려서, 여러분의 레포지토리는 뒤쳐진 옛날 버전일 가능성이 높습니다. 항상 레포지토리를 최신 버전으로 동기화하세요.
100+
```bash
101+
$ git fetch upstream
102+
$ git rebase upstream/master
103+
```
104+
105+
### Step 7: Push
106+
107+
여러분의 repo를 push하기전에 ‘Autopep8’을 실행해주세요!
108+
109+
E501(최대 문자 줄 제한)을 제외한 모든 PEP8형식을 따라주세요.
110+
111+
**잊지마세요, 가독성이 최우선입니다!**
112+
113+
* 예시:
114+
115+
```bash
116+
$ autopep8 . -r -i --ignore E501
117+
$ git push -u origin hotfix/lab10
118+
```
119+
120+
121+
### Step 8: Creating the PR
122+
이제 여러분의 브라우저와 repo를 열면 "compare & pull request."라는 초록색 버튼을 보실 수 있습니다.
123+
124+
* 좋은 제목을 작성하세요.
125+
* 여러분이 수정한 파일 이름만 쓰지마시고 자세하게 설명해주세요.
126+
* **여러분이 했던 것과 여러분이 왜 했었는지를 설명해주세요.**
127+
* 관련된 issue번호도 추가해주세요.
128+
129+
축하합니다! 여러분의 PR은 Collaborator들에게 검토받을겁니다.
130+
여러분의 PR이 CI Test도 통과했는지 체크하세요.
131+

docker_user_guide.md

+144
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
# Docker User Guide
2+
3+
도커를 사용하시는 분들을 위해 작성하는 도커 사용법입니다.
4+
5+
## Docker 설치 안내
6+
7+
[Docker 소개 및 안내](https://youtu.be/07yWBoRJtO0) - 오상준
8+
9+
## Docker 설치후 안내
10+
11+
### Docker 처음 실행
12+
13+
도커 터미널 실행후 아래 그림에 있는 IP 를 잘 기억해두세요!
14+
15+
앞으로 이 IP 를 사용하여 도커 컨테이너와 소통을 하게 됩니다.
16+
17+
![이미지](figs/docker_ip.png)
18+
19+
### 도커 이미지 다운로드 받기
20+
21+
hub.docker 에서 도커 이미지를 받아서 컨테이너를 사용할 준비를 합니다. (로그인이 필요 할 수도 있습니다. https://hub.docker.com 에서 가입하세요!)
22+
23+
```
24+
$ docker pull deeplearningzerotoall/pytorch:v0.4.1
25+
```
26+
27+
만약에 특별히 다른 버전을 지정하고 싶으면 저희 [docker hub](https://hub.docker.com/r/deeplearningzerotoall/pytorch) 에 접속하셔서 원하시는 버전을 확인합니다.
28+
29+
이미지를 받으셨으면 `docker images` 명령어를 쳐서 도커 이미지의 존재를 확인해봅니다.
30+
31+
```
32+
$ docker images
33+
REPOSITORY TAG ...
34+
hello-world lastest ...
35+
deeplearningzerotoall/pytorch v0.4.1 ...
36+
```
37+
38+
### 도커 이미지로부터 컨테이너 실행하고 끄기
39+
40+
도커 이미지로부터 컨테이너를 생성하고 실행합니다. 이때 `--name` 뒤에 원하는 이름을 설정할 수 있습니다. 이번 가이드에서는 `pt` 로 하겠습니다.
41+
42+
```
43+
$ docker run -i -t --name pt -p 8888:8888 -p 8097:8097 deeplearningzerotoall/pytorch:v0.4.1
44+
```
45+
46+
이제 거의 다 왔습니다. 도커 컨테이너를 만들었고 root 계정으로 컨테이너 내부 쉘에 접속한 상태입니다.
47+
48+
```
49+
root@[고유번호]:~#
50+
```
51+
52+
만약에 완전히 컨테이너를 끄고 싶다면 `exit` 명령어를 입력하세요!
53+
54+
```
55+
root@[고유번호]:~# exit
56+
```
57+
58+
`docker ps -a` 명령어를 사용해 현재 도커 컨테이너가 켜져있는 여부를 확인 할 수 있습니다. **STATUS** 를 확인하세요
59+
60+
```
61+
$ docker ps -a
62+
```
63+
64+
### 도커 컨테이너 자유롭게 드나들기
65+
66+
**주의**: `docker run` 명령어는 한번 만 실행하시면 됩니다. 종료된 컨테이너를 다시 실행하려면 아래와 같이 실행합니다.
67+
68+
```
69+
$ docker start pt
70+
```
71+
72+
이 단계는 컨테이너를 키기만 했을 뿐입니다. 컨테이너 터미널에 접속하려면 아래와 같이 실행합니다. 그러면 컨테이너 내부 터미널로 이동하게 됩니다.
73+
74+
```
75+
$ docker attach pt
76+
root@[고유번호]:~#
77+
```
78+
79+
만약에 컨테이너를 켜둔채 잠시 밖으로 나오고 싶다면 `Ctrl+q` 혹은 `Ctrl+c` 를 사용합니다. 마찬가지로 다시 접속하려면 `docker attach` 명령어를 사용하면 됩니다.
80+
81+
## 공부를 위한 Fork 및 Git Clone
82+
83+
이제 본격적으로 공부를 시작하기 위해 모두를 위한 딥러닝 [Github](https://github.com/deeplearningzerotoall/PyTorch) 에 접속합니다.
84+
85+
자신의 Github 계정으로 접속하시고, 아래 그림과 같이 오른쪽 상단에 있는 `Fork` 버튼을 누릅니다.
86+
87+
![이미지](figs/fork.png)
88+
89+
`Fork` 가 완료되면 자신의 레포지토리(오른쪽 위 상단의 프로필 이미지 클릭후, Your repositories)에 가시면 본 github 으로부터 Fork 된 repository 가 생성되어 있습니다.
90+
91+
![이미지](figs/fork_after.png)
92+
93+
해당 레포지토리를 클릭하여 접속하시고, 초록색 버튼인 `Clone or download`를 눌러서 하단의 링크를 복사 혹은 기억해둡니다.
94+
95+
![이미지](figs/clone.png)
96+
97+
다시 도커 컨테이너 내부로 돌아와서 복사한 링크를 `git clone` 명령어와 함께 붙여넣거나 타이핑해줍니다.
98+
99+
```
100+
root@[고유번호]:~# git clone https://github.com/[github계정이름]/PyTorch.git
101+
```
102+
103+
완료가 되면 이제 PyTorch 디렉토리로 이동합니다.
104+
105+
```
106+
root@[고유번호]:~# cd PyTorch
107+
root@[고유번호]:~/PyTorch#
108+
```
109+
110+
필수 패키지를 설치해줍니다.
111+
112+
```
113+
root@[고유번호]:~/PyTorch# pip install --upgrade pip
114+
root@[고유번호]:~/PyTorch# pip install -r requirements.txt
115+
```
116+
117+
거의 다왔습니다. 이제 `jupyter notebook` 만 실행하시면 됩니다.
118+
119+
```
120+
root@[고유번호]:~/PyTorch# jupyter notebook --ip 0.0.0.0 --allow-root
121+
```
122+
123+
위 명령어를 매번 치기 귀찮으신 분들을 위해 쉘 스크립트로 만들어 두었습니다.
124+
125+
```
126+
root@[고유번호]:~/PyTorch# sh run_jupyter_docker.sh
127+
```
128+
129+
`jupyter notebook` 처음 실행후 아래 이미지 처럼 도커 터미널에 긴 토큰이 생기는데 해당 토큰을 복사해둡니다.
130+
131+
![이미지](figs/jupyter_token.png)
132+
133+
이제 인터넷 창에 제일 처음이 도커실행시 주어진 IP 주소를 이용해 `[IP주소]:8888` 를 입력합니다. 그러면 아래 화면이 등장합니다.
134+
135+
![이미지](figs/jupyter_allow_root.png)
136+
137+
아까 복사해둔 토큰을 입력합니다. 처음 실행이라면 패스워드를 설정할 수도 있습니다. 다음 접속시 패스워드만 입력하면 되기 때문에 설정하는 것을 권장합니다.
138+
139+
`jupyter notebook` 을 종료하려면 도커 터미널에 돌아와서 `Ctrl+c` 를 두번 하시면 종료됩니다.
140+
141+
이제 모든 가이드가 끝났습니다. 열심히 공부하시길 바랍니다! :)
142+
143+
144+

run_jupyter_docker.sh

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
jupyter notebook --ip 0.0.0.0 --allow-root

0 commit comments

Comments
 (0)