๐Ÿณ Docker ํŒŒ์ผ์„ VSC์—์„œ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์–ด์š”.

ALL DOCKER Posted by Sunio on March 02, 2021 · 6 mins read

๋‚จ๋“ค ๋‹ค ์“ด๋‹ค๋Š” ๊ณ ๋ž˜ ์‚ฌ์šฉ๋ฒ• .

Tools

  • Windows, Docker, shell etcโ€ฆ

1. ์ด๊ฑธ ์™œํ–ˆ๋ƒ๋ฉดโ€ฆ


๐Ÿ™„ ํ•„์ž๋Š” ์ด์— ๋Œ€ํ•ด ์•„๋Š” ๊ฒƒ์ด ์ „๋ฌดํ•˜๋ฏ€๋กœ, ๋‚ด์šฉ ์ค‘ ํ‹€๋ฆฐ ๊ฒƒ์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ฐ์˜คํ•˜๊ณ  ์ฝ์–ด์ฃผ๊ธธ ๋ฐ”๋ž€๋‹ค.

๋‚˜๋งŒ์˜ ๋ฌด๊ธฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์ด์ „์— ๋ชจ๋‘์˜ ์…‹์—…์˜ sync๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ docker๋ผ๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.
๊ฐ„๋‹จํ•œ ํ•™์Šต๊ณผ ์œ ์พŒํ•œ ์„ ์ƒ๋‹˜๐Ÿคฉ์„ ํ†ตํ•ด์„œ (image๊ฐ€ ๋ญ๊ณ  container๊ฐ€ ๋ญ๊ณ , dockerhub๋Š” ๋ญ๊ณ โ€ฆ ๊นƒํ—™ ์งญ์ธ๊ฐ€ ์—Œใ…‹ใ…‹) ์ž์ž˜ํ•œ ์ง€์‹๋“ค์„ ์Œ“์•˜๊ณ , ์‹ค์ „์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก run, pull, start ๋“ฑ์˜ ๊ฐ„๋‹จํ•œ ์ปค๋งจ๋“œ์— ์ต์ˆ™ํ•ด์ง€๋Š” ์‹œ๊ฐ„๋„ ๊ฐ€์กŒ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ, ๊ฐ€์ƒํ™˜๊ฒฝ ์œ„์—์„œ ์„œ๋ฒ„๋ฅผ ๋Œ๋ฆฌ๋ฉด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋ชจ์Šต์„ ์ƒ์ƒํ•ด๋ณด๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊นƒํ—ˆ๋ธŒ์™€ ๊ฐ™์€ VCS(Version Control System)์„ ์ด์šฉํ•˜์—ฌ์•ผ ํ•  ๊ฒƒ์ด๊ณ , ๋ฌธ์ œ๋Š” ์ด ์ฝ”๋“œ๋ฅผ ๋„์ปค์œ„์—์„œ ์–ด๋–ป๊ฒŒ ์ˆ˜์ • ํ•˜๋Š๋ƒ ์ธ๋ฐ, ๋‚˜๋Š” (๋‹ค๋ฅธ ํŒ€์›๋“ค๋„ ๊ทธ๋Ÿด๊ฑฐ๋ผ ๋ฏฟ์ง€๋งŒ) vim ํฌ๋น„์•„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ vsc์—์„œ ์„œ๋ฒ„์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋…ธ๋ ฅ์„ ์•„๋ž˜์—์„œ ํ•ด๋ณผ ์˜ˆ์ •์ด๋‹ค.

2. ์ผ๋‹จ ๋„์ปค container ์ ‘์†ํ•˜๊ธฐ


์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ธฐ์กด์˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์„์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค.

  • ๋‚˜๋Š” ํ˜„์žฌ Windows10 WSL2์œผ๋กœ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค.(windows์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” docker desktop์„ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค.)

  • ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋ฅผ ์œ„์— ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค. ์‚ฌ์‹ค์ƒ docker run command๋งŒ ์žˆ์œผ๋ฉด ๋ฌด์ ์ธ๋ฐ, ์ด๋Š” ํ™˜๊ฒฝ์„ค์ •์ด ์…‹์—…๋˜์–ด ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„ โ€˜๊ณง๋ฐ”๋กœโ€™ ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ์œ„์˜ ์ปค๋งจ๋“œ๋ฅผ ํ†ตํ•œ ์ ‘๊ทผ์„ GUI desktop์„ ์ด์šฉํ•ด ์‰ฝ๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ฐ„์ง€๋‚˜๊ฒŒ CLI๋ฅผ ์ด์šฉํ•˜์ž.

>> docker pull {์ด๋ฏธ์ง€๋ช…}:{ํƒœ๊ทธ} # 1. ์ผ๋‹จ dockerhub ์–ด๋”˜๊ฐ€์— ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ด๋ฏธ์ง€ ๋ช…๊ณผ ํƒœ๊ทธ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.

>> docker images # ์ปดํ“จํ„ฐ ๋‚ด ๋„์ปค ์ด๋ฏธ์ง€๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

#๊ฒฐ๊ณผ
ubuntu@ip-172-31-39-245:~$ docker images
REPOSITORY           TAG       IMAGE ID       CREATED        SIZE
karxxxxx/mone   00        ddxxx024de4f   13 hours ago   772MB
python               latest    254d4xxx8f31   7 days ago     885MB
ubuntu               16.04     818xxx1cd5ad   5 weeks ago    132MB
django               latest    eb40dcf6xx78   4 years ago    436MB

>> docker create -it {์ด๋ฏธ์ง€๋ช…}:{ํƒœ๊ทธ} # 2. ๋„์ปค์ด๋ฏธ์ง€๋ฅผ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ƒ์„ฑํ•œ๋‹ค.

>> docker start {์ปจํ…Œ์ด๋„ˆ id ๋˜๋Š” ์ด๋ฆ„} # 3. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

>> docker attach {์ปจํ…Œ์ด๋„ˆ id ๋˜๋Š” ์ด๋ฆ„} # 4. ์ปจํ…Œ์ด๋„ˆ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ!

>> docker run -it {์ด๋ฏธ์ง€๋ช…}:{ํƒœ๊ทธ} # ์œ„ 1, 2, 3, 4 ๋ฅผ ํ•œ๋ฒˆ์— ์ง„ํ–‰ํ•˜๋Š” ์ปค๋งจ๋“œ

>> docker ps # ๋™์ž‘ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ํ™•์ธํ•˜๊ธฐ

์ฐธ๊ณ ๋กœ -it ์˜ต์…˜์€ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋“ค์–ด๊ฐ”์„ ๋•Œ, bash๋กœ CLI ์ž…์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•จ.

์œ„ ๊ณผ์ •์„ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ๊ฐ€์ƒ์˜ ํ™˜๊ฒฝ์„ ํ•˜๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ , ์ด์ œ ์ด ์œ„์—์„œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด๋ณด์ž.

3. ๊ณ ๋ž˜ ๋“ฑ ์œ„์—์„œโ€ฆ


์ผ๋‹จ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„๋ฅผ ํ•˜๋‚˜ ๋Œ๋ ค์„œ ์•ž์œผ๋กœ ๋‚จ์€ Task ๋“ค์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„ํ•ด๋ณด์ž.

  • ์•„๋ž˜์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ง„ํ–‰ํ•ด๋ณด์ž.
  1. docker image pull ๋ฐ›๊ธฐ
    • ์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€๋ฅผ ๋‚ด docker๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.

  2. docker์— ์ ‘์†ํ•˜๊ธฐ
    >> docker run -it [์ด๋ฏธ์ง€ ์•„์ด๋””] # ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด,
    ## ํ˜น์€
    >> docker start [์ปจํ…Œ์ด๋„ˆ ์•„์ด๋””] # ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊บผ์ ธ ์žˆ๋‹ค๋ฉด,
    >> docker attach [์ปจํ…Œ์ด๋„ˆ ์•„์ด๋””] # ์ผœ์ ธ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•œ๋‹ค๋ฉด,
    

    ์ด ๋•Œ, run์„ ํ•˜๋ฉด ๊ฐ™์€ ์ด๋ฏธ์ง€์˜ ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค.(์ขŒ์ธก ์ƒ๋‹จ 2๊ฐœ์˜ โ€˜dd3โ€™)

  3. github์— repo ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค์–ด์„œ clone, ๋งŒ์•ฝ docker ํ™˜๊ฒฝ์— ๊นƒ์ด ์—†์œผ๋ฉด ์„ค์น˜๋ฅผ ํ•ด์•ผํ•œ๋‹ค.

     >> root@620a89368594:/\# cd home
     >> root@620a89368594:/\# git clone https://github.com/sunio00000/DockerNamu # clone
    
  4. ์ต์Šคํ…์…˜ ์„ค์น˜
    • vsc์˜ extension์„ ์‚ฌ์ง„์˜ ๋‘๊ฐ€์ง€ ๊น”์•„์•ผํ•จ
    • ๋‹ค์šด ๊ณผ์ •์—์„œ ํ•„์š”ํ•˜๋‹ค๋ฉด, docker desktop์„ ์„ค์น˜ํ•˜๊ณ  windows๋Š” ์ถ”๊ฐ€๋กœ wsl2๋ฅผ ๋‹ค์šด๋ฐ›๊ฒŒ๋จ

  5. ์ˆ˜์ •ํ•˜๊ธฐ
    • ์•„๋ž˜์ฒ˜๋Ÿผ vim์„ ํ†ตํ•ด ์ˆ˜์ •ํ•ด๋„ ๋œ๋‹ค.
       >> root@620a89368594:/\# vim new.py # ์ด๋ ‡๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ...
      
    • ํ•˜์ง€๋งŒ vsc๋ฅผ ํ†ตํ•ด ์—ด๋ฉด ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋ฐ”๋กœ ์ ์šฉ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  6. ๊นƒํ—ˆ๋ธŒ ํ‘ธ์‰ฌํ•ด๋ณด๊ธฐ, ์ด ๋•Œ ์•„๋งˆ config ์„ค์ •์„ ์š”๊ตฌํ•  ๊ฑฐ์—์š” ์ถฉ์กฑ์‹œ์ผœ ์ฃผ์„ธ์š”.
     >> root@7df4751c1e80:/\# git push # add, commit ๋‹คํ•˜๊ตฌ ํ‘ธ์‰ฌํ‘ธ   ์‰ฌ
    

4. ๋งˆ์น˜๋ฉฐโ€ฆ


์ด๋ ‡๊ฒŒ vsc ๋ฅผ ํ†ตํ•ด docker์˜ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋„ˆ๋ฌด๋‚˜ ๊ฐ„๋‹จํ•œ ๋‚ด์šฉ์ด์ง€๋งŒ ํฌ์ŠคํŒ…์„ ํ•˜๋‹ค๋ณด๋‹ˆ docker๋Š” ์ด๋Ÿฐ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•์˜ ๋ชฉ์  ๋ฟ ์•„๋‹ˆ๋ผ ๋ฐฐํฌํ™˜๊ฒฝ์„ ๋งŒ๋“œ๋Š”๋ฐ ๋„ˆ๋ฌด๋‚˜ ์ ํ•ฉํ•˜๋‹ค๋Š” ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๐Ÿ’ก ํฌ์ŠคํŒ… ๊ณผ์ •์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ด์Šˆ๊ฐ€ ์žˆ๋Š”๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • wsl ํƒ“์ธ์ง€ docker ํƒ“์ธ์ง€ ํ™˜๊ฒฝ์ด ๋งค์šฐ,๋งค์šฐ,๋งค์šฐ ๋Š๋ฆฌ๊ฒŒ ๋Š๊ปด์ง„๋‹ค. -> ํ•˜๋ฃจ ์ง€๋‚˜๋‹ˆ๊นŒ ๊ดœ์ฐฎ์•„์กŒ๋‹ค.
  • ์›ํ•˜๋Š” ํด๋”๋ฅผ explorer๋กœ ๋ฐ”๋กœ๋ฐ”๋กœ ์—ด์–ด ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€๋ฐ ์•„์ง ๋ชป์ฐพ์•˜๋‹ค. -> vsc extension์ธ โ€˜Remote - Containersโ€™ ๋ฅผ ๋‹ค์šด๋ฐ›์•„ ํ•ด๊ฒฐํ–ˆ๋‹ค.
  • ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด dockerfile๊ณผ docker compose์— ๋Œ€ํ•ด ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค๋ฉด, ๊ฐœ๋ฐœ์„ ๋กœ์ปฌ์—์„œ ํ•˜๊ณ  dockerfile์„ ์ด์šฉํ•ด ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋Š” ์„œ๋ฒ„์— ๋ฐ”๋กœ ๋‚ด๊ฐ€ ์ˆ˜์ •ํ•œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ ์šฉํ•ด(๋ฐฐํฌ ์ž๋™ํ™”) ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

5. Reference


์–„ํŒํ•œ ์ฝ”๋”ฉ์‚ฌ์ „ docker ๋ช…๋ น์–ด

๋กœ์ปฌ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๋„์ปค ์‚ฌ์šฉํ•˜๊ธฐ

๋„์ปค๋กœ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ

Visual Studio Code / FTP(SFTP)๋กœ ์›๊ฒฉ ์„œ๋ฒ„ ์ ‘์†ํ•˜์—ฌ ํŒŒ์ผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

vscode ์™€ docker ์—ฐ๋™ํ•˜๊ธฐ


โ€ข 0 Comments