λ컀λ 컨ν μ΄λ κΈ°μ μ κΈ°λ°μΌλ‘ νλ μΌμ’ μ κ°μν νλ«νΌμ΄λ€.
κ°μ λ¨Έμ (VirturalBox, VMware λ±)
컨ν μ΄λ
μ ν리μΌμ΄μ μ κ°λ°κ³Ό λ°°ν¬κ° νΈν΄μ§
μ¬λ¬ μ ν리μΌμ΄μ μ λ 립μ±κ³Ό νμ₯μ±μ΄ λμμ§
컨ν μ΄λλ₯Ό μμ±ν λ νμν μμ
μ¬λ¬ κ°μ κ³μΈ΅μΌλ‘ λ λ°μ΄λ리 νμΌλ‘ μ‘΄μ¬
컨ν μ΄λλ₯Ό μμ±νκ³ μ€νν λ μ½κΈ° μ μ©μΌλ‘ μ¬μ©λ¨
μ΄λ―Έμ§λ λ컀 λͺ
λ Ήμ΄λ‘ λ΄λ €λ°μ μ μμΌλ―λ‘ λ³λλ‘ μ€μΉν νμ μμ
[μ μ₯μ μ΄λ¦]/[μ΄λ―Έμ§ μ΄λ¦]:[νκ·Έ]μ ννλ‘ κ΅¬μ±
π λ컀 λ²μ νμΈ
# docker -v
π λ컀 μ΄λ―Έμ§ λ€μ΄λ§ λ°κΈ°
docker pull {μ΄λ―Έμ§λͺ
}:{νκ·Έ}
# μ: docker pull python:3
π λ컀νμΌλ‘ μ΄λ―Έμ§ μμ±
// Dockerfile νμΌμ΄ μλ λλ ν 리 κΈ°μ€. λ§μ§λ§μ . μ΄ μλμ£Όμ
# docker build -t {μ΄λ―Έμ§λͺ
} .
π 컨ν μ΄λ μμ±
run
: μμ±κ³Ό λμμ 컨ν
μ΄λ λ΄λΆλ‘ λ€μ΄κ°
β start, attach μ€ν
# docker run -i -t [μ΄λ―Έμ§μ΄λ¦:νκ·Έ]
create
: 컨ν
μ΄λλ§ μμ±νκ³ λ΄λΆλ‘ μ λ€μ΄κ°
β λ컀 μ΄λ―Έμ§λ₯Ό pull ν λ€ μ»¨ν
μ΄λλ§ μμ± ν λΏ start, attach μ€ννμ§ μμ
# docker create -i -t {μ΅μ
(ex)--name [μμ±ν μ΄λ¦]} [μ΄λ―Έμ§μ΄λ¦:νκ·Έ]
start
, attach
// λ§λ€μ΄μ§ 컨ν
μ΄λ μμνκΈ°(μ΄λ―Έμ§μ CMDλ‘ μ§μ ν΄λμ μμ
μν€κΈ°
# docker start [컨ν
μ΄λμ΄λ¦]
// 컨ν
μ΄λλ‘ λ€μ΄κ°κΈ°(컨ν
μ΄λ λ΄ CLI μ¬μ©νκΈ°)
# docker attach [컨ν
μ΄λμ΄λ¦]
-i
, -t
μ΅μ
-i : μνΈ μ
/μΆλ ₯
-t : tty νμ±νν΄μ λ°°μ(bash) μ
Έμ μ¬μ©νλλ‘ μ»¨ν
μ΄λ μ€μ
# bdocker run μ¬μ© μ μ΄ λ μ΅μ
μ μ¬μ©νμ§ μμΌλ©΄ μ
Έμ μ μμ μΌλ‘ μ¬μ©ν μ μμ
π λμμ€μΈ 컨ν μ΄λ μ¬μμ
# docker restart {컨ν
μ΄λ id λλ μ΄λ¦}
π νμΌμμ€ν νμΈ
ls
π 컨ν μ΄λ λ΄λΆμμ λμ€κΈ°
// 컨ν
μ΄λ μ μ§ μν€λ©΄μ λΉ μ Έλμ€κΈ°
exit
Ctrl + D
// μ μ§ μνκ³ λΉ μ Έλμ€κΈ°
Ctrl + P, Q
π λ컀 μμ§μ μ‘΄μ¬νλ μ΄λ―Έμ§ λͺ©λ‘
# docker images
π 컨ν μ΄λ λͺ©λ‘
// μ μ§λμ§ μμ 컨ν
μ΄λλ§ μΆλ ₯
# docker ps
// μ μ§λ 컨ν
μ΄λλ λͺ¨λ ν¬ν¨νμ¬ μΆλ ₯(-a μ΅μ
)
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8828a383f936 ubuntu:22.04 "bash" 25 hours ago Up 25 hours hopeful_lovelace
CONTAINER ID
: 컨ν
μ΄λμκ² μλμΌλ‘ ν λΉλλ κ³ μ ν ID# docker inspect [컨ν
μ΄λ μ΄λ¦] | grep Id
μ¬μ©νμ¬ ν ID νμΈ κ°λ₯IMAGE
: 컨ν
μ΄λλ₯Ό μμ±ν λ μ¬μ©λ μ΄λ―Έμ§ μ΄λ¦COMMAND
: 컨ν
μ΄λκ° μμλ λ μ€νλ λͺ
λ Ήμ΄CREATED
: 컨ν
μ΄λκ° μμ±λκ³ λ λ€ νλ₯Έ μκ°STATUS
: 컨ν
μ΄λμ μνPORTS
: 컨ν
μ΄λκ° κ°λ°©ν ν¬νΈμ νΈμ€νΈμ μ°κ²°ν ν¬νΈλ₯Ό λμ΄ν¨NAMES
: 컨ν
μ΄λμ κ³ μ ν μ΄λ¦--name
μ΅μ
μΌλ‘ μ΄λ¦μ μ€μ νμ§ μμΌλ©΄ λ컀 μμ§μ΄ μμλ‘ νμ©μ¬μ λͺ
μ¬λ₯Ό 무μμ μ‘°ν©ν΄ μ΄λ¦μ μ€μ ν¨docker rename [기쑴컨ν
μ΄λμ΄λ¦] [λ³κ²½ν 컨ν
μ΄λμ΄λ¦]
μ¬μ©νμ¬ μ»¨ν
μ΄λ μ΄λ¦ λ³κ²½ κ°λ₯π 컨ν μ΄λ μμ
# docker rm
// μ€νμ€μΈ 컨ν
μ΄λλ μμ λΆκ°νμ¬ stop λͺ
λ Ήμ΄λ‘ μ€μ§ μν¨ ν μμ
# docker stop mycentos
# docker rm mycentos
// μ€νμ€μΈ 컨ν
μ΄λ λ°λ‘ μμ
# docker rm -f mycentos
// λͺ¨λ 컨ν
μ΄λ νλ²μ μμ
# docker container prune
# docker ps -a -q
-> -a : 컨ν
μ΄λ μνμ κ΄κ³μμ΄ λͺ¨λ 컨ν
μ΄λ / -q : 컨ν
μ΄λ IDλ§ μΆλ ₯
// 컨ν
μ΄λμ μ€ν μνμ κ΄κ³μμ΄ λͺ¨λ 컨ν
μ΄λλ₯Ό μ μ§νκ³ μμ
# docker stop $(docker ps -a -p)
# docker rm $(docker ps -a -q)
π rmi
: μ΄λ―Έμ§ μμ
# docker rmi {μ΅μ
} {μ΄λ―Έμ§ id}
π exec
: μ΄λ―Έ μ€νλ νΉμ 컨ν
μ΄λ νκ²½μ λλ²κΉ
νλ μ©λ
# docker exec [컨ν
μ΄λID] [COMMAND]
// ν΄λΉ 컨ν
μ΄λ ID μ€ν ν COMMAND λͺ
λ Ήμ΄ μ€ν
# docker run μ μλ‘ μ»¨ν
μ΄λλ₯Ό μμ±νλ μ©λ
π logs
: λ컀 λ‘κ·Έ νμΈ
# docker logs [컨ν
μ΄λID]
π link
: μμμ --name
μΌλ‘ λμ΄ μ»¨ν
μ΄λμ μ°λνλ κ²
μΆμ² : https://youtu.be/SJFO2w5Q2HI μνμ½λ©μ νλΈ
π 컨ν μ΄λμ λ€νΈμν¬ μΈν°νμ΄μ€λ₯Ό νμΈ
# ifconfig
π -p
: 컨ν
μ΄λμ ν¬νΈλ₯Ό νΈμ€νΈμ ν¬νΈμ λ°μΈλ©ν΄ μ°κ²°ν μ μκ² μ€μ
# -p [νΈμ€νΈμ ν¬νΈ]:[컨ν
μ΄λμ ν¬νΈ]
// μ) 7777:80 -> νΈμ€νΈμ 7777λ² ν¬νΈλ₯Ό 컨ν
μ΄λ 80λ² ν¬νΈμ μ°κ²°
# -p [νΉμ IP]:[νΈμ€νΈμ ν¬νΈ]:[컨ν
μ΄λμ ν¬νΈ]
// μ) 192.168.0.100:7777:80
# -p [νΈμ€νΈμ ν¬νΈ]:[컨ν
μ΄λμ ν¬νΈ] -p [νΉμ IP]:[νΈμ€νΈμ ν¬νΈ]:[컨ν
μ΄λμ ν¬νΈ]
// μ¬λ¬ κ°μ ν¬νΈλ₯Ό μΈλΆμ κ°λ°©
// μ) -p 3306:3306 -p 192.168.0.100:7777:80
# -p 80
// 컨ν
μ΄λμ 80λ² ν¬νΈλ₯Ό μΈ μ μλ νΈμ€νΈμ ν¬νΈ μ€ νλμ μ°κ²°
// μ΄λν¬νΈμ μ°κ²°νλμ§ μ μ μκΈ° λλ¬Έμ docker ps λͺ
λ Ήμ΄λ‘ PORTS νλͺ© νμΈ νμ
π -v
# -v [Host OS 곡μ λλ ν°λ¦¬(κ²½λ‘)]:[컨ν
μ΄λ 곡μ λλ ν°λ¦¬(κ²½λ‘)]
// μ) docker run -d -v /root:/app ubuntu:22.04
π echo [λ¬Έμμ΄] > [νμΌλͺ
.νμ₯μλͺ
]
: [λ¬Έμμ΄]μ΄ λ΄μ©μΌλ‘ μ ν νμΌ μμ±
π cat [νμΌλͺ
.νμ₯μλͺ
]
: νμΌ λͺ©λ‘μμ μ°ΎκΈ°