[TIL-20260129] Docker μ»¨ν…Œμ΄λ„ˆ 닀루기

2026. 1. 30. 16:44·Today I Learned 🧐

 

πŸ€ To Do List

 

πŸ‘©πŸ»‍πŸ’» Today I Learned ...

μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈ 인프라λ₯Ό κ΅¬μ„±ν•˜λ©΄μ„œ 이해도가 뢀쑱함을 느껴, λ‹€μ‹œ Docker ν•™μŠ΅μ„ μ‹œμž‘ν–ˆλ‹€ .. πŸ’†πŸ»‍♀️

 

 

 

Docker 이미지와 μ»¨ν…Œμ΄λ„ˆ

이미지(Image)

- μ»¨ν…Œμ΄λ„ˆλ₯Ό 생성할 λ•Œ ν•„μš”ν•œ μš”μ†Œ

- μ»¨ν…Œμ΄λ„ˆμ˜ λͺ©μ μ— λ§žλŠ” λ°”μ΄λ„ˆλ¦¬μ™€ μ˜μ‘΄μ„±μ΄ μ„€μΉ˜λ˜μ–΄ 있음

- μ—¬λŸ¬ 개의 κ³„μΈ΅μœΌλ‘œ 된 λ°”μ΄λ„ˆλ¦¬ 파일둜 쑴재

 

μ»¨ν…Œμ΄λ„ˆ(Container)

- ν˜ΈμŠ€νŠΈμ™€ λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆλ‘œλΆ€ν„° 격리된 μ‹œμŠ€ν…œ μžμ›κ³Ό λ„€νŠΈμ›Œν¬λ₯Ό μ‚¬μš©ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€

- μ΄λ―Έμ§€λŠ” 읽기 μ „μš©μœΌλ‘œ μ‚¬μš©ν•˜μ—¬ 변경사항은 μ»¨ν…Œμ΄λ„ˆ 계측에 μ €μž₯λœλ‹€ ➑️ μ»¨ν…Œμ΄λ„ˆμ˜ λ³€κ²½ 사항은 이미지에 영ν–₯을 μ£Όμ§€ μ•ŠμŒ

 

 

 

`πŸ’¬ ν˜„μž¬ μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈλŠ” Github Actionsμ—μ„œ Docker 이미지λ₯Ό λΉŒλ“œν•˜κ³ , AWS Lightsail Container Service에 pushν•˜μ—¬

λ°°ν¬ν•˜κ³  μžˆλ‹€. 배포된 μ΄λ―Έμ§€λŠ” Lightsail λ‚΄λΆ€μ—μ„œ Docker μ»¨ν…Œμ΄λ„ˆλ‘œ μ‹€ν–‰λœλ‹€.`

 

 

Docker μ»¨ν…Œμ΄λ„ˆ 닀루기

Docker run μ£Όμš” μ˜΅μ…˜

docker run \
-i \ # 호슀트의 ν‘œμ€€ μž…λ ₯을 μ»¨ν…Œμ΄λ„ˆμ™€ μ—°κ²° (interactive)
-t \ # TTY ν• λ‹Ή
--rm \ # μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ μ’…λ£Œ ν›„ μžλ™ μ‚­μ œ
-d \ # λ°±κ·ΈλΌμš΄λ“œ λͺ¨λ“œλ‘œ μ‹€ν–‰ (detached)
--name hello-world \ # μ»¨ν…Œμ΄λ„ˆ 이름 μ§€μ •
fastcampus/hello-world:latest \	# μ‹€ν–‰ν•  이미지
my-command	# μ»¨ν…Œμ΄λ„ˆ λ‚΄μ—μ„œ μ‹€ν–‰ν•  λͺ…λ Ήμ–΄

 

`-i`μ˜΅μ…˜

  • 호슀트 (λ‚΄ 컴퓨터)의 ν‚€λ³΄λ“œ μž…λ ₯이 μ»¨ν…Œμ΄λ„ˆλ‘œ μ „λ‹¬λœλ‹€.
  • `-i` 없이 μ‹€ν–‰ -> bashκ°€ μ‹€ν–‰λ˜μ§€λ§Œ, μž…λ ₯을 받을 수 μ—†κ³  μ¦‰μ‹œ μ’…λ£Œλœλ‹€.
  • `-i` μ˜΅μ…˜μœΌλ‘œ μ‹€ν–‰ -> ν‚€λ³΄λ“œ μž…λ ₯이 μ»¨ν…Œμ΄λ„ˆμ˜ bash둜 μ „λ‹¬λ˜κ³ , `ls` λ“± λͺ…λ Ήμ–΄ μž…λ ₯이 κ°€λŠ₯ν•˜λ‹€.

 

`-t`μ˜΅μ…˜

  • TTY(Teletypewriter) = 가상 터미널 (Terminal) = λͺ…령쀄 μΈν„°νŽ˜μ΄μŠ€ ν™˜κ²½
  • ν™”λ©΄ 좜λ ₯ ν¬λ§·νŒ… (μ€„λ°”κΏˆ, 색상 λ“±)을 ν•΄μ€€λ‹€.
  • `-t`없이 μ‹€ν–‰ ➑️ μ •λ ¬ 처리 μ•ˆ λ˜μ–΄μžˆκ³ , 색상도 μ—†λ‹€
  • `-t` μ˜΅μ…˜μœΌλ‘œ μ‹€ν–‰ ➑️ μ •λ ¬λœ μƒνƒœ, 색상도 보여진닀.

 

 

 

`-d` μ˜΅μ…˜

 

ν¬κ·ΈλΌμš΄λ“œ λͺ¨λ“œλ‘œ μ‹€ν–‰ν•˜κ²Œ 되면 터미널이 λ§‰ν˜€μ„œ λ‹€λ₯Έ μž‘μ—…μ„ ν•˜μ§€ λͺ» ν•œλ‹€.

 

 

 

λ°±κ·ΈλΌμš΄λ“œ λͺ¨λ“œλ‘œ μ‹€ν–‰ν•˜κ²Œ 되면, μ»¨ν…Œμ΄λ„ˆλ₯Ό μ’…λ£Œ μ‹œν‚€μ§€ μ•Šκ³  λ‹€λ₯Έ μž‘μ—…μ΄ κ°€λŠ₯ν•˜λ‹€.

 

 

 

Docker λͺ…λ Ήμ–΄ μ‹€ν–‰

싀행쀑인 μ»¨ν…Œμ΄λ„ˆμ— λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•œλ‹€.

$ docker exec [container] [command]

 

 

μ»¨ν…Œμ΄λ„ˆ 포트 λ…ΈμΆœ

μ»¨ν…Œμ΄λ„ˆμ˜ 포트λ₯Ό 호슀트의 `IP:PORT`와 μ—°κ²°ν•˜μ—¬ μ„œλΉ„μŠ€λ₯Ό λ…ΈμΆœν•œλ‹€.

docker run -p [HOST IP:PORT] {CONTAINER PORT] [container]

 

 

nginx μ»¨ν…Œμ΄λ„ˆμ˜ 80번 포트λ₯Ό 호슀트의 λͺ¨λ“  8080번 ν¬νŠΈμ™€ μ—°κ²°ν•˜μ—¬ μ‹€ν–‰μ‹œν‚¨λ‹€.

`curl`λͺ…λ Ήμ–΄λ‘œ 8080ν¬νŠΈμ— 접속해보면 nigxκ°€ μ‹€ν–‰λ˜λŠ” κ±Έ λ³Ό 수 μžˆλ‹€.

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'Today I Learned 🧐' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[TIL-20260202] Kotlin data class, enum class  (0) 2026.02.02
[TIL-20260131] Docker 이미지 닀루기  (0) 2026.01.31
[TIL-20260128] Nginx Basic Auth, Github Actions둜 .htpasswd 생성  (0) 2026.01.28
[TIL-20260127] @AuthenticationPrincipal , Swagger JWT 인증 μ„€μ •  (0) 2026.01.27
[TIL-20260124] Spring Batch Reader κ΅¬ν˜„  (0) 2026.01.24
'Today I Learned 🧐' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [TIL-20260202] Kotlin data class, enum class
  • [TIL-20260131] Docker 이미지 닀루기
  • [TIL-20260128] Nginx Basic Auth, Github Actions둜 .htpasswd 생성
  • [TIL-20260127] @AuthenticationPrincipal , Swagger JWT 인증 μ„€μ •
ν•΄λ‹ˆ 🌱
ν•΄λ‹ˆ 🌱
기둝이 μžμ‚°μ΄λ‹€ ( •Μ€α΄—•́ )و✏️
  • ν•΄λ‹ˆ 🌱
    haeni.dev
    ν•΄λ‹ˆ 🌱
  • 링크

    • github
    • velog
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (25)
      • μš°μ‚¬κΈ° κ°œλ°œμΌμ§€ 🐰 (4)
      • Today I Learned 🧐 (19)
      • λΆ„λ…Έμ˜ 타이핑 둜그 πŸ”₯ (2)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    AWS
    IT
    springboot
    ci/cd
    개발
    개발자
    til
    μ½”λ”©ν…ŒμŠ€νŠΈ
    μ½”ν…Œ
    λ°±μ—”λ“œ
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.5
ν•΄λ‹ˆ 🌱
[TIL-20260129] Docker μ»¨ν…Œμ΄λ„ˆ 닀루기
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”