Docker μ¬μ©μ μ μ λ€νΈμν¬ κ΅¬μ±
μ§λ ν¬μ€ν μμ Dockerλ‘ κ°μ₯ κΈ°λ³Έμ μΈ λ€νΈμν¬ μ€μ κ³Ό ꡬμ±μ λν΄ μμλ΄€μ΅λλ€.
μ΄λ² ν¬μ€ν μμλ Dockerλ‘ κ΅¬μ±ν μ μλ λ€νΈμν¬λ€μ λν΄ μ€λͺ νκ³ , μ΄λ»κ² ꡬμ±νλμ§μ λν΄ μμ보λλ‘ νκ² μ΅λλ€.
μ΄ ν¬μ€ν μμ λ€νΈμν¬μ λν μ½κ°μ μ§μμ΄ νμν©λλ€.
Docker λ€νΈμν¬ κ΅¬μ±
Dockerμμ λ€νΈμν¬ κ΅¬μ±μΌ λμνλ₯Ό μν΄, μ¬λ¬κ°μ§ λ€νΈμν¬ κ΅¬μ± λ°©λ²μ μ 곡ν©λλ€. κΈ°λ³Έμ μ΄ λͺ¨λμΈ bridge λͺ¨λλΆν° μμνμ¬, μ€ μλ²μ κ°μ λ€νΈμν¬μ μν μ μλ host λͺ¨λ κ·Έ μΈ, λ€νΈμν¬μ μ ν 무κ΄ν λ€νΈμν¬ μλ 컨ν μ΄λλ‘λ ꡬμ±ν μ μμ΅λλ€.
Docker λ€νΈμν¬λ μ¬μ©μ λ°λΌ μ¬μ©μ μ μλ‘ κ΅¬μ±ν μ μλ λ°©λ²μ μ 곡ν©λλ€. μ¬λ¬λΆλ€μ μλ² νκ²½μ λ°λΌ, λ¨μΌ νμ μΌ κ²½μ°μλ ν΄λΉ μ€ μλ²μ λ€νΈμν¬μ λ°λ₯Έ hostλ‘ μ°κ²°ν μλ μκ³ , 컨ν μ΄λλ§μ λ 립μ μΈ λ€νΈμν¬λ‘λ ꡬμ±ν μλ μμΌλ©° λ€νΈμν¬μμ μμ λΆλ¦¬λ₯Ό μν¬ μλ μμ΅λλ€.
Docker κΈ°λ³Έ λ€νΈμν¬ κ΅¬μ± (bridge)
Dockerμ κΈ°λ³Έ λ€νΈμν¬ κ΅¬μ±μ bridge λͺ¨λμ λλ€. bridge λͺ¨λμ λ€νΈμν¬ κ΅¬μ±μ Docker 컨ν μ΄λλ§μ λ€νΈμν¬λ₯Ό μ€ μλ²μ λ€νΈμν¬μ λΆλ¦¬ν΄ λ 립μ μΌλ‘ ꡬμ±νλ λ€νΈμν¬ λ°©μ μ€μ νλμ λλ€.
μ μ¬μ§μ 보μλ©΄, μ¬λ¬λΆλ€μ μ¬λ΄ μλ² νΉμ μμ μ μλ²μμ Dockerλ₯Ό μ€μΉνκ³ , κ·Έ 컨ν μ΄λλ₯Ό 3κ°λ₯Ό λ§λ€μμ΅λλ€. docker0 interfaceλ₯Ό bridge λ°©μμΌλ‘ μ€μ ν΄λκ³ , Docker λ°λͺ¬μμ μ€μ€λ‘ IPλ₯Ό λμ ν λΉνλλ‘ μ€μ ν΄λμμ΅λλ€. μ΄κ²μ΄ Docker λ€νΈμν¬μ κΈ°λ³Έ μ€μ λ°©μμ λλ€. 리λ μ€ μ»¨ν μ΄λλ§μ λ€νΈμν¬λ₯Ό λ 립μ μΌλ‘ ꡬμ±ν κ²μ΄μ§μ.
$ docker network inspect bridge
μμ μλ λ€νΈμν¬ κ΅¬μ±λ μ¬μ§μ΄λ 무κ΄νκ², μ κ° νμ¬ μ¬μ©νκ³ μλ Docker 컨ν
μ΄λ λ€νΈμν¬ κ΅¬μ± λͺ¨μ΅μ
λλ€. λ κ°μ 컨ν
μ΄λλ₯Ό μ΄μνκ³ μκ³ , νμ¬ bridge λͺ¨λλ‘ μ΄μνκ³ μμ΅λλ€. μ§λ ν¬μ€ν
μμ μμ±ν κ²μ²λΌ μλΈλ·ν
νμκ³ , λλ¨Έμ§ μ€μ μ λλΆλΆ κΈ°λ³Έ μ€μ κ°μ μ¬μ©νμμΌλ©°, IP MASQUERADE κΈ°λ₯μ μ¬μ© μ€μ
λλ€.
Bridge λ€νΈμν¬ κ΅¬μ±μ Docker λ€νΈμν¬ μ€μ μ κΈ°λ³Έκ°μ΄κΈ° λλ¬Έμ, μ²μ Dockerλ₯Ό μ€μΉνμλ λΆλ€μ΄λΌλ©΄, Docker 컨ν μ΄λ μμ±μ νμ λκ° bridge λͺ¨λκ° λ©λλ€.
Docker λ€νΈμν¬ κ΅¬μ± - host
Docker λ€νΈμν¬ κ΅¬μ± μ€μ λ λ€λ₯Έ λ°©λ²μλ μλ²μ νΈμ€νΈ λ€νΈμν¬λ₯Ό μ¬μ©νλ λ°©λ²μ΄ μμ΅λλ€. μ΄ λ°©λ²μ μ°λ¦¬λ host λΌκ³ μ μνλλ°, 컨ν μ΄λλ₯Ό λ³λμ λ 립μ μΈ λ€νΈμν¬μ μνμ§ μκ³ , μ€ μλ²μ νΈμ€νΈ λ€νΈμν¬λ₯Ό κ·Έλλ‘ μ¬μ©νκ² νλ λ°©λ²μΌλ‘ λ¨μΌ 컨ν μ΄λμμ μΉ μλΉμ€λ₯Ό ν λ, μ£Όλ‘ μ¬μ©νλ λ°©λ²μ λλ€.
λ¨Όμ host λ°©μμ 컨ν μ΄λλ₯Ό ν λ² μμ±ν΄λ΄ μλ€.
$ docker run -i -t --name TEST01 --net=host ubuntu
μ λͺ λ Ήμ΄λ₯Ό μ λ ₯νλ©΄, νΈμ€νΈ μ΄λ¦λ, λ€νΈμν¬ κ΅¬μ±λ λͺ¨λ κ°μ TEST01μ 컨ν μ΄λκ° μμ±μ΄ λ©λλ€. νμ§λ§ ν¨ν€μ§λ μ΄λ° λΆλΆμ λκ°μ§ μμΌλ net-tools ν¨ν€μ§λ₯Ό λ ν¬μ§ν°λ¦¬λ‘ μ€μΉνμ¬ ifconfig λͺ λ Ήμ΄λ‘ νμΈν΄λ΄ μλ€.
$ apt update && apt install net-tools && ifconfig
λͺ λ Ήμ΄λ₯Ό μ λ ₯ν΄λ³΄λ©΄, νμ¬ μμ μ μλ²μ 100% λκ°μ λ€νΈμν¬ κ΅¬μ± μ λ³΄κ° μΆλ ₯νκ² λ©λλ€.
$ docker network inspect host
host λ€νΈμν¬μ λν μ 보λ₯Ό νμΈν΄λ΄ μλ€. κ·Έλ¬λ©΄, νμ¬ λμμ Έμλ 컨ν μ΄λμ λ€νΈμν¬ μ λ³΄κ° λμ€λλ°, bridge λ€νΈμν¬μλ λ¬λ¦¬ IPλ MAC μ£Όμλ₯Ό λ³λλ‘ κ°μ§κ³ μμ§ μμ΅λλ€. λν λ€νΈμν¬ μ΅μ μ¬νλ host λ€νΈμν¬λ₯Ό κ·Έλλ‘ λ°λΌκ°κΈ° λλ¬Έμ, MASQUERADE λ±μ κΈ°λ₯ μ¬λΆλ νμλμ§ μμ΅λλ€.
Docker λ€νΈμν¬ κ΅¬μ± - none
Dockerλ μλ¬΄λ° λ€νΈμν¬ κ΅¬μ±μ΄ λμ΄ μμ§ μμ μ¦, λ€νΈμν¬ κ΅¬μ±μ΄ μ ν μλ 컨ν μ΄λλ₯Ό μμ±ν μλ μμ΅λλ€. λ¨, μ΄ μ»¨ν μ΄λμ μμ±μ μ΄λ―Έ ν¨ν€μ§ μμ μμ μ΄ νμν ν¨ν€μ§λ νλ‘κ·Έλ¨μ΄ μ€μΉλ κ²½μ°μλ§ μ¬μ©νλ κ²μ μΆμ²ν©λλ€. μλλ©΄, μΈν°λ·μ΄ λμ§ μκΈ° λλ¬Έμ΄μ£ ...
$ docker run -i -t --name TEST02 --net=none ubuntu
κ΅¬μ± λ°©λ²μ λ€λ₯Έ 컨ν μ΄λμ μμ±κ³Ό λμΌνκ² μ§νν μ μμ΅λλ€. --netμ μΈμ κ°λ§ λ°κΎΈλ©΄ λ©λλ€.
$ docker network inspect none
ν΄λΉ λ€νΈμν¬ λ°©μμΌλ‘ ꡬμ±λ μ 보 λν λ§μ§λ§ λ¨μ΄λ§ κ΅μ²΄νλ©΄, μ½κ² μ μ μμ΅λλ€.
Docker λ€νΈμν¬ κ΅¬μ± - container
Docker λ€νΈμν¬μλ νΈμ€νΈμ λ€νΈμν¬ νκ²½μ κ·Έλλ‘ λ¬Όλ €λ°μ μ μλ host λ€νΈμν¬ κ΅¬μ± λ°©λ²μ΄ μμ΅λλ€. κ·Έμ λ°λλ‘, 컨ν μ΄λμ λ€νΈμν¬ νκ²½μ κ·Έλλ‘ λ¬Όλ €λ°μ μλ μμ΅λλ€.
$ docker run -i -t --name TEST03 --net=container:[CONTAINER ID] ubuntu
컨ν μ΄λλ₯Ό μμ±ν λ, λ€νΈμν¬ νκ²½μ 곡μ νκ³ μΆμ 컨ν μ΄λIDλ₯Ό μ λ ₯ν΄μ£Όλ©΄ λ©λλ€.
ν΄λΉ 컨ν μ΄λμ 곡μ νκ³ μ νλ 컨ν μ΄λμμ κ°κ°μ ifconfig λͺ λ Ήμ΄λ₯Ό μ λ ₯ν΄ νμΈν΄λ³΄λ©΄, MAC μ£Όμμ IP μ£Όμκ° λͺ¨λ μΌμΉνλ κ²μ νμΈν μ μμ΅λλ€.
'Infrastructure > Docker' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Docker] HAProxyλ₯Ό μ΄μ©ν λ‘λ λ°Έλ°μ± (0) | 2020.06.14 |
---|---|
[Docker] nginx web serverλ₯Ό μ΄μ©ν λ‘λ λ°Έλ°μ± (0) | 2020.06.10 |
Docker λ€νΈμν¬ κ΅¬μ±κ³Ό μ€μ (0) | 2016.07.20 |
Docker, κ·Έκ²μ 무μμ΄κ³ , μ€μΉλ μ΄λ»κ²ν κΉ? (0) | 2016.07.06 |