๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋„์ปค๋กœ rocky9 ์„ค์น˜ ํ›„, ์‚ฌ์šฉํ•˜๊ธฐ

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2024. 8. 4.

 

Rocky 9์„ ์„ค์น˜ํ•ด์„œ ํ…Œ์ŠคํŠธ ํ•ด์•ผ ํ•  ์ผ์ด ์žˆ์—ˆ๋‹ค.

 

์ฒ˜์Œ์—๋Š” VMware๋กœ ๊ฐ€์ƒ๋จธ์‹ ์„ ์‚ฌ์šฉํ•ด์„œ rocky9์„ ํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ, ์•Œ ์ˆ˜ ์—†๋Š” ์—๋Ÿฌ์™€ ๊ทธ ๊ณผ์ •์—์„œ ์†Œ์š”๋˜๋Š” ๋‹ค์šด๋กœ๋“œ ์‹œ๊ฐ„์˜ ์†Œ๋น„๊ฐ€ ๋„ˆ๋ฌด ๋ง‰๋Œ€ ํ–ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ฐพ์€ ์ข‹์€ ๋Œ€์•ˆ์ด ๋ฐ”๋กœ docker ์˜€๋‹ค.

 


๋„์ปค๋ฅผ ํ™œ์šฉํ•ด์„œ rocky 9 ์„ ์„ค์น˜ํ•ด๋ณด์ž

1. Rocky Linux ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ

๋„์ปค ํ—ˆ๋ธŒ์— ์˜ฌ๋ผ์˜จ rockylinux9์˜ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.

docker pull rockylinux:9

 

2. Rocky Linux ์ปจํ…Œ์ด๋„ˆ ์ตœ์ดˆ ์‹คํ–‰

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด, ๋กœ์ปฌ์—์„œ์˜ ์ ‘๊ทผ์„ ์œ„ํ•œ ํฌํŠธ ์„ค์ •์„ ํ•ด์ค€๋‹ค.

docker run -d --name my_rocky_container -p 2222:22 -p 8080:8080 -p 8099:8099 -p 8199:8199 rockylinux:9

 

์—ฌ๊ธฐ์„œ, ์—ฌ๋Ÿฌ ์˜ต์…˜์„ ์ด์šฉํ–ˆ๋Š”๋ฐ,

 

-d : ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ„ฐ๋ฏธ๋„์„ ์ฆ‰์‹œ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์ž‘์—…์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

--name : ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๋‚˜๋Š” my_rocky_container ๋กœ ์ •ํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋ฉด ๊ด€๋ฆฌํ•˜๊ธฐ์— ํšจ์œจ์ ์ด๋‹ค.

-p : ์™ธ๋ถ€ ํ˜ธ์ŠคํŠธ๊ฐ€ ์ ‘๊ทผํ•  ๋•Œ, ํŠน์ • ํฌํŠธ๋กœ ์ ‘๊ทผํ•  ๋•Œ ์›ํ•˜๋Š” ํฌํŠธ๋กœ ๋งคํ•‘ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. 8099:8099 ๊ฐ™์€ ๊ฒฝ์šฐ ์™ธ๋ถ€์—์„œ 8099 ํฌํŠธ๋กœ ์ ‘๊ทผํ•˜๋ฉด docker ์ปจํ…Œ์ด๋„ˆ ํฌํŠธ 8099๋กœ ๋งคํ•‘ํ•ด์ค€๋‹ค.

-> ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋ฅผ docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ํ•˜๋‹ค๋ณด๋‹ˆ ์ด๋ ‡๊ฒŒ ํฌํŠธ๋ฅผ ์„ค์ •ํ–ˆ๋‹ค.

 

docker run -it --name rockylinux9_container rockylinux:9 /bin/bash

 

์ด๋Ÿฐ์‹์œผ๋กœ๋„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,

-it(interactive, tty) : docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ๋ฐ”๋กœ ์ง„์ž…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ์ด ์˜ต์…˜์€ ์ƒํ˜ธ์ž‘์šฉ ๋ชจ๋“œ(interactive mode)๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ”๋กœ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„(tty)์„ ์—ฐ๊ฒฐํ•œ๋‹ค.

 

*-p๋กœ ์„ค์ •ํ•  ๋•Œ 8080:8080 ์„ ๋ณด๋ฉด ์ธ๋ฐ”์šด๋“œ๋Š” ๋กœ์ปฌip๋กœ ๋‚˜์˜ค์ง€๋งŒ ์•„์›ƒ๋ฐ”์šด๋“œ๋Š” ๋„์ปค ์ž์ฒด ip๋กœ ๋‚˜์˜จ๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•˜์ž

 

๊ทธ๋Ÿฐ๋ฐ ,

์—ฌ๊ธฐ์„œ ๊ทธ์น˜๋ฉด docker๋ฅผ ์‹คํ–‰ ์‹œ์ผฐ๋Š”๋ฐ ์ผฐ๋‹ค๊ฐ€ ๋ฐ”๋กœ ๊บผ์ง€๋Š” ํ˜„์ƒ์ด ์žˆ๋‹ค. => ์ด๋Š” SSH ์„œ๋ฒ„๊ฐ€ ํฌ์–ด๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰์ด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ

 

๋งŒ์•ฝ -it๋กœ ๋ฐ”๋กœ ์ ‘๊ทผ์„ ํ–ˆ๋‹ค๋ฉด ํฌ์–ด๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰ํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊บผ์ง€์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” -d๋กœ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰์„ ํ–ˆ๋‹ค.

 

๋‚˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰ํ–ˆ์—ˆ๊ณ , ๊ณ„์† ๊บผ์ง€๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๋กœ ๋งˆ์Œ์„ ๋จน์—ˆ๋‹ค!

 

Dockerfile

# ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋กœ Rocky Linux 9 ์‚ฌ์šฉ
FROM rockylinux:9

# ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ ๋ฐ OpenSSH ์„œ๋ฒ„ ์„ค์น˜
RUN dnf update -y && \
    dnf install -y openssh-server && \
    echo 'root:password' | chpasswd && \
    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
    sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config && \
    mkdir /var/run/sshd

# ํฌํŠธ ๋…ธ์ถœ
EXPOSE 22
EXPOSE 8080
EXPOSE 8099
EXPOSE 8199

# SSH ์„œ๋ฒ„๋ฅผ ํฌ์–ด๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰
CMD ["/usr/sbin/sshd", "-D"]

 

FROM rockylinux:9 : 

์ด๋Š” rockylinux9 ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์€ docker ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋นŒ๋“œ์˜ ์‹œ์ž‘์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€๋ฅผ ์ง€์ •ํ•œ๋‹ค.

 

RUN :

๋นŒ๋“œ ์‹œ์— ์ปค์Šคํ…€ ๋˜์–ด์ง„ ์ด๋ฏธ์ง€์— ์ ์šฉํ•  ์„ค์ • ๋“ค์ด๋‹ค.

 

EXPOSE :

์–ด๋–ค ํฌํŠธ๋ฅผ ์ด์šฉํ•  ๊ฒƒ์ธ์ง€ ๋ฌธ์„œํ™” ํ•˜๋Š” ์ž‘์—…์ด๋‹ค. ์ด๋กœ์จ ๊ฐœ๋ฐœ์ž ๋˜๋Š” ๊ด€๋ จ์ž๊ฐ€ ์–ด๋–ค ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ธ์ง€ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹ค์ œ๋กœ๋Š” ์ ์šฉ์ด ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค.

 

CMD :

์ด ๋ช…๋ น์–ด๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘ ๋  ๋•Œ ์‹คํ–‰ํ•  ๊ธฐ๋ณธ ๋ช…๋ น์–ด๋ฅผ ์ง€์ •ํ•œ๋‹ค. 

"/usr/sbin/sshd" ๋Š” ์ ˆ๋Œ€๊ฒฝ๋กœ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฐฉ์‹์ด๋‹ค. 

*ํ”ํžˆ ์šฐ๋ฆฌ๋Š” ./startup.sh ๋กœ ์‹คํ–‰์„ ํ•˜์ง€๋งŒ  /usr/sbin/sshd ์ด๋ ‡๊ฒŒ๋„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ ˆ๋Œ€๊ฒฝ๋กœ๋กœ ์‹คํ–‰์‹œํ‚จ๋‹ค๊ณ  ๋งํ•œ๋‹ค.

 

์ด๋•Œ "-D"  ๋ช…๋ น์–ด๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰์„ ํฌ์–ด๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰ํ•˜๊ฒŒ๋” ํ•ด์ค€๋‹ค.

 

์ฆ‰, /usr/sbin/sshd ๋ฅผ ํฌ์–ด๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰์„ ์‹œํ‚ด์œผ๋กœ์จ docker๊ฐ€ ๊บผ์ง€์ง€ ์•Š๊ฒŒ ํ•œ ๊ฒƒ์ด๋‹ค.

 

์ด๋กœ์จ, ์‹ค์ œ๋กœ๋Š” ํฌ์–ด๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰์„ ํ–ˆ์ง€๋งŒ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ํ˜•ํƒœ ๋ง๊ณ ๋„ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ docker๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ  ๋ฐ”๋กœ ์•ˆ ๊บผ์ง€๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ฒฐ๊ตญ, 
Docker ์ปจํ…Œ์ด๋„ˆ์˜ ์ฃผ ํ”„๋กœ์„ธ์Šค: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ง€์†์ ์œผ๋กœ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฃผ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํฌ์–ด๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด๋Š” Docker์˜ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ๋ฐฉ์‹์—์„œ ์ค‘์š”ํ•œ ์š”์†Œ์ด๋‹ค.

์ด๊ฒŒ docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ง€์†ํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” ํ•ต์‹ฌ ์›๋ฆฌ์ธ ์…ˆ์ด๋‹ค.

 

 

 

 

 

์ดํ›„, 

docker build -t rockylinux:9_v2 .

 

ํ•ด์ฃผ๋ฉด ์›๋ž˜ rockylinux:9์˜ ์ด๋ฏธ์ง€๋Š” ๊ทธ๋Œ€๋กœ ์žˆ๊ณ  ์ปค์Šคํ…€ ๋˜์–ด์ง„ rockylinux:9_v2๋กœ ํƒœ๊ทธ ๋˜์–ด ์ง„๋‹ค.

 

๊ทธ ๋‹ค์Œ ๋ฐ”๋กœ 

docker run -d --name my_rocky_container -p 2222:22 -p 8080:8080 -p 8099:8099 -p 8199:8199 rockylinux:9_v2

๋กœ ์‹คํ–‰์„ ํ•˜๋ฉด ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰์ด ๋˜์—ˆ์ง€๋งŒ ์‹คํ–‰ํ•œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  docker exec -it ~ ๋กœ ์ ‘๊ทผํ•˜๋ฉด ๋‚ด๋ถ€๋กœ ์ ‘๊ทผ์ด ๋˜๊ณ  ๋‚˜์˜ค๋”๋ผ๋„ docker stop ํ•ด์ฃผ๊ธฐ ์ „ ๊นŒ์ง€ ์‹คํ–‰์ด ์œ ์ง€๊ฐ€ ๋œ๋‹ค.

 

๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— SFTP๋ฅผ ์œ„ํ•œ WCPSCP ์ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•

์šฐ์„  ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๋“ค์–ด๊ฐ€์„œ

vim /etc/ssh/sshd_config

 

์ด์ชฝ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

 

์—ฌ๊ธฐ์„œ

PermitRootLogin yes
PasswordAuthentication yes

 

๋ฅผ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋กœ์ปฌ WCPSCP์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ด ๋‘˜ ์ค‘์— ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋•Œ๋Š” ์ˆ˜์ž‘์—…์œผ๋กœ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 

 

<<์กฐ๊ธˆ ๋” ๊ณต๋ถ€ํ•ด ๋ณผ ๋ถ€๋ถ„>>

1. ๋ฐฑ๊ทธ๋ผ์šด๋“œ vs ํฌ์–ด๊ทธ๋ผ์šด๋“œ์˜ ์‹œ์Šคํ…œ์  ์›๋ฆฌ

2. ssh ์˜ ๋ช…ํ™•ํ•œ ์ •์˜ -> ์‰˜์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์‰˜๋กœ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

3. docker exec -it ์ ‘๊ทผ๊ณผ ssh๋กœ ์›๊ฒฉ ์ ‘๊ทผ ์ฐจ์ด

๋Œ“๊ธ€