Skip to content

Latest commit

ย 

History

History
144 lines (88 loc) ยท 5.37 KB

File metadata and controls

144 lines (88 loc) ยท 5.37 KB

Docker User Guide

๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์ž‘์„ฑํ•˜๋Š” ๋„์ปค ์‚ฌ์šฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Docker ์„ค์น˜ ์•ˆ๋‚ด

Docker ์†Œ๊ฐœ ๋ฐ ์•ˆ๋‚ด - ์˜ค์ƒ์ค€

Docker ์„ค์น˜ํ›„ ์•ˆ๋‚ด

Docker ์ฒ˜์Œ ์‹คํ–‰

๋„์ปค ํ„ฐ๋ฏธ๋„ ์‹คํ–‰ ํ›„ ์•„๋ž˜ ๊ทธ๋ฆผ์— ์žˆ๋Š” IP ๋ฅผ ์ž˜ ๊ธฐ์–ตํ•ด๋‘์„ธ์š”!

์•ž์œผ๋กœ ์ด IP ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์™€ ์†Œํ†ต์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€

๋„์ปค ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ธฐ

hub.docker ์—์„œ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•  ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. (๋กœ๊ทธ์ธ์ด ํ•„์š” ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. https://hub.docker.com ์—์„œ ๊ฐ€์ž…ํ•˜์„ธ์š”!)

$ docker pull deeplearningzerotoall/tensorflow

๋งŒ์•ฝ์— ํŠน๋ณ„ํžˆ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์ง€์ •ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ €ํฌ docker hub ์— ์ ‘์†ํ•˜์…”์„œ ์›ํ•˜์‹œ๋Š” ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์œผ์…จ์œผ๋ฉด docker images ๋ช…๋ น์–ด๋ฅผ ์ณ์„œ ๋„์ปค ์ด๋ฏธ์ง€์˜ ์กด์žฌ๋ฅผ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.

$ docker images
REPOSITORY				TAG	...
hello-world				latest	... 
deeplearningzerotoall/tensorflow	latest	...

๋„์ปค ์ด๋ฏธ์ง€๋กœ๋ถ€ํ„ฐ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ํ•˜๊ณ  ๋„๊ธฐ

๋„์ปค ์ด๋ฏธ์ง€๋กœ๋ถ€ํ„ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ --name ๋’ค์— ์›ํ•˜๋Š” ์ด๋ฆ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ฐ€์ด๋“œ์—์„œ๋Š” tf ๋กœ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

$ docker run -i -t --name tf -p 8888:8888 -p 6006:6006 deeplearningzerotoall/tensorflow /bin/bash

์ด์ œ ๊ฑฐ์˜ ๋‹ค ์™”์Šต๋‹ˆ๋‹ค. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค์—ˆ๊ณ  root ๊ณ„์ •์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์‰˜์— ์ ‘์†ํ•œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

root@[๊ณ ์œ ๋ฒˆํ˜ธ]:/workspace#

๋งŒ์•ฝ์— ์™„์ „ํžˆ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„๊ณ  ์‹ถ๋‹ค๋ฉด exit ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”!

root@[๊ณ ์œ ๋ฒˆํ˜ธ]:/workspace# exit

docker ps -a ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ํ˜„์žฌ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ผœ์ ธ์žˆ๋Š” ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. STATUS ๋ฅผ ํ™•์ธํ•˜์„ธ์š”

$ docker ps -a

ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋งŒ ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” docker ps ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ž์œ ๋กญ๊ฒŒ ๋“œ๋‚˜๋“ค๊ธฐ

์ฃผ์˜: docker run ๋ช…๋ น์–ด๋Š” ํ•œ ๋ฒˆ ๋งŒ ์‹คํ–‰ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ข…๋ฃŒ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ docker start tf

์ด ๋‹จ๊ณ„๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ‚ค๊ธฐ๋งŒ ํ–ˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ํ„ฐ๋ฏธ๋„์— ์ ‘์†ํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ํ„ฐ๋ฏธ๋„๋กœ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

$ docker attach tf
root@[๊ณ ์œ ๋ฒˆํ˜ธ]:/workspace#

๋งŒ์•ฝ์— ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ผœ๋‘”์ฑ„ ์ž ์‹œ ๋ฐ–์œผ๋กœ ๋‚˜์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด Ctrl+P + Ctrl+Q ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์‹œ ์ ‘์†ํ•˜๋ ค๋ฉด docker attach ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ณต๋ถ€๋ฅผ ์œ„ํ•œ Fork ๋ฐ Git Clone

์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋”ฅ๋Ÿฌ๋‹ Github ์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

์ž์‹ ์˜ Github ๊ณ„์ •์œผ๋กœ ์ ‘์†ํ•˜์‹œ๊ณ , ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ์žˆ๋Š” Fork ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€

Fork ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ž์‹ ์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ(์˜ค๋ฅธ์ชฝ ์œ„ ์ƒ๋‹จ์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ํด๋ฆญํ›„, Your repositories)์— ๊ฐ€์‹œ๋ฉด ๋ณธ github ์œผ๋กœ๋ถ€ํ„ฐ Fork ๋œ repository ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€

ํ•ด๋‹น ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ ‘์†ํ•˜์‹œ๊ณ , ์ดˆ๋ก์ƒ‰ ๋ฒ„ํŠผ์ธ Clone or download๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ํ•˜๋‹จ์˜ ๋งํฌ๋ฅผ ๋ณต์‚ฌ ํ˜น์€ ๊ธฐ์–ตํ•ด๋‘ก๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€

๋‹ค์‹œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ๋Œ์•„์™€์„œ ๋ณต์‚ฌํ•œ ๋งํฌ๋ฅผ git clone ๋ช…๋ น์–ด์™€ ํ•จ๊ป˜ ๋ถ™์—ฌ๋„ฃ๊ฑฐ๋‚˜ ํƒ€์ดํ•‘ํ•ด์ค๋‹ˆ๋‹ค.

root@[๊ณ ์œ ๋ฒˆํ˜ธ]:/workspace# git clone https://github.com/[github๊ณ„์ •์ด๋ฆ„]/TensorFlow.git

์™„๋ฃŒ๊ฐ€ ๋˜๋ฉด ์ด์ œ TensorFlow ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

root@[๊ณ ์œ ๋ฒˆํ˜ธ]:/workspace# cd TensorFlow
root@[๊ณ ์œ ๋ฒˆํ˜ธ]:/workspace/TensorFlow# 

ํ•„์ˆ˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค.

root@[๊ณ ์œ ๋ฒˆํ˜ธ]:/workspace/TensorFlow# pip install --upgrade pip
root@[๊ณ ์œ ๋ฒˆํ˜ธ]:/workspace/TensorFlow# pip install -r requirements.txt

๊ฑฐ์˜ ๋‹ค์™”์Šต๋‹ˆ๋‹ค. ์ด์ œ jupyter notebook ๋งŒ ์‹คํ–‰ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

root@[๊ณ ์œ ๋ฒˆํ˜ธ]:/workspace/TensorFlow# jupyter notebook --ip 0.0.0.0 --allow-root

์œ„ ๋ช…๋ น์–ด๋ฅผ ๋งค๋ฒˆ ์น˜๊ธฐ ๊ท€์ฐฎ์œผ์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋กœ ๋งŒ๋“ค์–ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

root@[๊ณ ์œ ๋ฒˆํ˜ธ]:/workspace/TensorFlow# sh run_jupyter_docker.sh

jupyter notebook ์ฒ˜์Œ ์‹คํ–‰ํ›„ ์•„๋ž˜ ์ด๋ฏธ์ง€ ์ฒ˜๋Ÿผ ๋„์ปค ํ„ฐ๋ฏธ๋„์— ๊ธด ํ† ํฐ์ด ์ƒ๊ธฐ๋Š”๋ฐ ํ•ด๋‹น ํ† ํฐ์„ ๋ณต์‚ฌํ•ด๋‘ก๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€

์ด์ œ ์ธํ„ฐ๋„ท ์ฐฝ์— ์ œ์ผ ์ฒ˜์Œ์ด ๋„์ปค์‹คํ–‰์‹œ ์ฃผ์–ด์ง„ IP ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•ด [IP์ฃผ์†Œ]:8888 ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜ ํ™”๋ฉด์ด ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€

์•„๊นŒ ๋ณต์‚ฌํ•ด๋‘” ํ† ํฐ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ ์‹คํ–‰์ด๋ผ๋ฉด ํŒจ์Šค์›Œ๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ ‘์†์‹œ ํŒจ์Šค์›Œ๋“œ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

jupyter notebook ์„ ์ข…๋ฃŒํ•˜๋ ค๋ฉด ๋„์ปค ํ„ฐ๋ฏธ๋„์— ๋Œ์•„์™€์„œ Ctrl+c ๋ฅผ ๋‘๋ฒˆ ํ•˜์‹œ๋ฉด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋ชจ๋“  ๊ฐ€์ด๋“œ๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค! :)