๋์ปค๋ก rocky9 ์ค์น ํ, ์ฌ์ฉํ๊ธฐ
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๋ก ์๊ฒฉ ์ ๊ทผ ์ฐจ์ด
'DevSecOps > docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋์ปค์์ nGrinder ์ฑ๋ฅ ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ถ -์์ฑ์ค- (0) | 2025.06.09 |
---|---|
์ปจํ ์ด๋ vs ๊ฐ์๋จธ์ (4) | 2025.06.05 |
๋๊ธ