๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป Programming/Docker & Kubernetes

[Docker] (6) ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ์ ‘์†ํ•˜๊ธฐ - docker exec & docker attach

by ๋ญ…์ฆค 2023. 8. 21.
๋ฐ˜์‘ํ˜•
Docker ์ „์ฒด ํฌ์ŠคํŒ…
๋”๋ณด๊ธฐ

[Docker] (1) ๋„์ปค ๊ฐœ๋… ์„ค๋ช… | ๋„์ปค๋Š” ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ๊นŒ?

[Docker] (2) ๋„์ปค & ๋„์ปค์ปดํฌ์ฆˆ ๋‹ค์šด๋กœ๋“œ

[Docker] (3) ๋„์ปค ํ•ต์‹ฌ ๊ฐœ๋… - ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ๋„์ปค ํ—ˆ๋ธŒ

[Docker] (4) docker pull(์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ) & docker run(์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ/์‹คํ–‰) & ํฌํŠธํฌ์›Œ๋”ฉ(ํฌํŠธ๋งคํ•‘)

[Docker] (5) ๋„์ปค run ๋ช…๋ น์–ด ์˜ต์…˜, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•

[Docker] (6) ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ์ ‘์†ํ•˜๊ธฐ - docker exec & docker attach

[Docker] (7) ๋„์ปค volume(๋ณผ๋ฅจ) ์˜ต์…˜ - ์ปจํ…Œ์ด๋„ˆ ํด๋”์™€ ํ˜ธ์ŠคํŠธ ํด๋” ์—ฐ๊ฒฐํ•˜๊ธฐ

[Docker] (8) ๋„์ปค commit(์ปค๋ฐ‹) & push(ํ‘ธ์‹œ) - ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒˆ๋กœ์šด ๋„์ปค ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•˜๊ณ  ๋ ˆํผ์ง€ํ† ๋ฆฌ์— ์—…๋กœ๋“œ

[Docker] (9) Dockerfile(๋„์ปคํŒŒ์ผ) - ์Šค๋งˆํŠธํ•˜๊ฒŒ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•

[Docker] (10) Dockerfile ๋นŒ๋“œ ์˜ˆ์‹œ | ENTRYPOINT ์™€ CMD์˜ ์ฐจ์ด

[Docker] (11) ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์™€ vscode ์—ฐ๋™ํ•˜๊ธฐ | ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ฐœ๋ฐœ

[Docker] (12) ๊นƒํ—ˆ๋ธŒ๋กœ ๋„์ปค ์ด๋ฏธ์ง€ ๊ณต์œ ํ•˜๊ธฐ | Packages Container Registry

 

 

Docker ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ์ฃผ๋กœ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์„ ์—ด์–ด ์ง์ ‘ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋””๋ฒ„๊น…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

docker exec ๋ช…๋ น์–ด 
  • ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ์ƒˆ๋กœ์šด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์„ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๊ณ , ์ƒˆ๋กœ์šด ๋ช…๋ น์„ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋งŒ์„ ๋ณด์—ฌ์คŒ
  • -it ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๋ชจ๋“œ์™€ ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์ปจํ…Œ์ด๋„ˆ ํ„ฐ๋ฏธ๋„๊ณผ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ๋ช…๋ น ์‹คํ–‰ ํ›„์—๋„ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š์Œ
docker exec -it ์ปจํ…Œ์ด๋„ˆ_ID ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ_์ด๋ฆ„ /bin/bash

 

์ด ๋ช…๋ น์–ด๋Š” -it ์˜ต์…˜์œผ๋กœ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๋ชจ๋“œ์™€ ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„์„ ์—ด์–ด์ฃผ๋ฉฐ, /bin/bash ๋ช…๋ น์€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ bash ์‰˜์„ ์‹คํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค. ๋‹ค๋ฅธ ์‰˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํ•ด๋‹น ์‰˜์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋œ๋‹ค.
 
 
docker attach ๋ช…๋ น์–ด
 
  • ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ํ„ฐ๋ฏธ๋„์— ํ˜„์žฌ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์„ ์—ฐ๊ฒฐ
  • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ํ‘œ์ค€ ์ž…๋ ฅ(stdin), ์ถœ๋ ฅ(stdout), ์—๋Ÿฌ(stderr)๋ฅผ ํ˜„์žฌ ํ„ฐ๋ฏธ๋„์— ์—ฐ๊ฒฐ
  • ์ปจํ…Œ์ด๋„ˆ์˜ ํ„ฐ๋ฏธ๋„์— ์ข…์†๋˜๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ ํ„ฐ๋ฏธ๋„์—์„œ ๋‚˜์˜ค๋ฉด ํ˜„์žฌ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์ด ์ข…๋ฃŒ๋จ
docker attach ์ปจํ…Œ์ด๋„ˆ_ID ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ_์ด๋ฆ„
 
docker attach๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์ด ์ปจํ…Œ์ด๋„ˆ ํ„ฐ๋ฏธ๋„๊ณผ ์—ฐ๊ฒฐ๋˜๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ ํ„ฐ๋ฏธ๋„์—์„œ ๋‚˜๊ฐ€๋ ค๋ฉด Ctrl + p๋ฅผ ๋ˆ„๋ฅด๊ณ  Ctrl + q๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.
 
 
 

์ด๋ ‡๊ฒŒ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ์ ‘์†ํ•˜๋ฉด, ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋””๋ฒ„๊น…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

docker attach & exec ์‚ฌ์šฉ ์˜ˆ์‹œ

๋Œ€ํ™”ํ˜• ์‰˜ ํ”„๋กœ์„ธ์Šค (ex OS)

  • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— 'bash'์™€ ๊ฐ™์€ ๋Œ€ํ™”ํ˜• ์‰˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ด๋ผ๋ฉด docker attach๋กœ ํ•ด๋‹น ์‰˜์— ์ ‘์† ๊ฐ€๋Šฅ
  • docker ps๋กœ ํ™•์ธํ–ˆ์„ ๋•Œ, ubuntu์˜ COMMAND๊ฐ€ "bash" ์ด๊ธฐ์— docker attach๋กœ ๋ฐ”๋กœ ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์† ๊ฐ€๋Šฅ

 

ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ (ex ์›น์„œ๋ฒ„)

docker attach
docker exec

  • ์ ‘์†ํ•˜๋ ค๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋Œ€ํ™”ํ˜• ์‰˜์ด ์•„๋‹Œ ์›น์„œ๋ฒ„์ฒ˜๋Ÿผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ docker attach๋กœ๋Š” ์ƒํ˜ธ์ž‘์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Œ

 

→ ๋”ฐ๋ผ์„œ ์ ‘์†ํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ํŠน์„ฑ๊ณผ ํ•„์š”ํ•œ ์ž‘์—…์— ๋”ฐ๋ผ docker attach์™€ docker exec ์ค‘ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๋ฐ˜์‘ํ˜•