[🐳 Docker 🐳] 도컀 λ„€νŠΈμ›Œν¬

Yohan_05Β·2023λ…„ 1μ›” 30일
0

Docker

λͺ©λ‘ 보기
5/11

도컀 λ„€νŠΈμ›Œν¬ ꡬ쑰

veth : virtual eth

docker():도컀 엔진에 μ˜ν•΄ κΈ°λ³Έ μƒμ„±λ˜λŠ” λΈŒλ¦Ώμ§€ λ„€νŠΈμ›Œν¬, veth 와 eth κ°„ 닀리 μ—­ν• 

μ»¨ν…Œμ΄λ„ˆκ°€ μƒμ„±λ˜λŠ” λ™μ‹œμ— ν˜ΈμŠ€νŠΈμ—λŠ” μ»¨ν…Œμ΄λ„ˆμ˜ eth 에 λŒ€μ‘λ˜λŠ” veth κ°€ 생성됨.

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

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

# nginx μ»¨ν…Œμ΄λ„ˆμ˜ 80번 포트λ₯Ό 호슀트 λͺ¨λ“  ip의 80번 ν¬νŠΈμ™€ μ—°κ²°ν•˜μ—¬ μ‹€ν–‰
$ docker run -d -p 80:80 nginx

# nginx μ»¨ν…Œμ΄λ„ˆμ˜ 80번 포트λ₯Ό 호슀트 127.0.0.1 ip의 80번 ν¬νŠΈμ™€ μ—°κ²°ν•˜μ—¬ μ‹€ν–‰
$ docker run -d -p 127.0.0.1:80:80 ngnix

# nginx μ»¨ν…Œμ΄λ„ˆμ˜ 80번 포트λ₯Ό 호슀트의 μ‚¬μš© κ°€λŠ₯ν•œ ν¬νŠΈμ™€ μ—°κ²°ν•˜μ—¬ μ‹€ν–‰
$ docke run -d -p 80 nginx

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

Expose, Publish

# expose μ˜΅μ…˜μ€ κ·Έμ € λ¬Έμ„œν™” μš©λ„
$ docker run -d --expose 80 nginx

# publish μ˜΅μ…˜μ€ μ‹€μ œ 포트λ₯Ό 바인딩
$ docke run -d -p 80 nginx


κ·Έμ € λ¬Έμ„œν™” μš©λ„μ΄λ―€λ‘œ curl 둜 nginx 확인이 μ•ˆλ˜λŠ” 것을 μ•Œ 수 μžˆλ‹€.

도컀 λ„€νŠΈμ›Œν¬ λ“œλΌμ΄λΈŒ


μ‹±κΈ€ ν˜ΈμŠ€νŠΈμ—μ„œ λŒμ•„κ°€λŠ” λ“œλΌμ΄λΈŒ(λΈŒλ¦Ώμ§€, 호슀트, λ…Ό), λ©€ν‹° ν˜ΈμŠ€νŠΈμ—μ„œ λŒμ•„κ°€λŠ” λ“œλΌμ΄λΈŒ(μ˜€λ²„λ ˆμ΄)κ°€ μžˆλ‹€.

None λ„€νŠΈμ›Œν¬ λ“œλΌμ΄λΈŒ

λ…Ό λ„€νŠΈμ›Œν¬ λ“œλΌμ΄λΈŒλŠ” ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆκ°€ λ„€νŠΈμ›Œν¬ κΈ°λŠ₯이 ν•„μš”μ—†μ„λ•Œ λ˜λŠ” μ»€μŠ€ν…€ λ„€νŠΈμ›Œν‚Ήμ„ μ‚¬μš©ν•΄μ•Όν• λ•Œ κΈ°λ³Έ λ“œλΌμ΄λΈŒλ₯Ό λ…ΌμœΌλ‘œ 놔두고 μ‚¬μš©ν•  수 μžˆλ‹€.

Host λ“œλΌμ΄λΈŒ

호슀트 λ„€νŠΈμ›Œν¬λŠ” 도컀가 μ œκ³΅ν•΄μ£ΌλŠ” 가상 λ„€νŠΈμ›Œν¬λ₯Ό μ‚¬μš©ν•˜λŠ”κ²Œ μ•„λ‹ˆλΌ 직접 호슀트 λ„€νŠΈμ›Œν¬μ— λΆ™μ–΄μ„œ μ‚¬μš©ν•˜λŠ” κ°œλ…μž„. μ‚¬μš©ν•  κ²½μš°μ—” 포트 바인딩을 ν•˜μ§€ μ•Šμ•„λ„ λ°”λ‘œ 접속이 κ°€λŠ₯함.


호슀트 λ“œλΌμ΄λΈŒλ₯Ό μ‚¬μš©ν•˜μ—¬μ„œ 호슀트 λ„€μž„μ„ μ‚¬μš©.

Bridge λ“œλΌμ΄λΈŒ

κ°„λ‹¨νžˆ λ§ν•΄μ„œ 컴퓨터 내뢀에 μžˆλŠ” 가상 μŠ€μœ„μΉ˜ ν—ˆλΈŒλΌκ³  λ³΄μ‹œλ©΄ 될 것 κ°™λ‹€.

profile
μ•ˆλ…•ν•˜μ„Έμš” DevOps μ—”μ§€λ‹ˆμ–΄λ‘œ ν˜„μ—…μ—μ„œ ν™œλ™μ€‘μΈ μš”ν•œμ΄λΌκ³  ν•©λ‹ˆλ‹€.

0개의 λŒ“κΈ€