커널패닉 (119.♡.59.225)
2025년 2월 12일 AM 12:09 · 수정됨(02. 02. 08:25)
리눅스마스터 1급 실습환경 구축 강좌입니다.
Docker를 사용하여 어느 환경에서나 실습 환경을 구축할 수 있도록 구성했습니다.
가상 환경(예: VMware, VirtualBox 등)을 사용하면 Docker 없이도 환경을 구축할 수 있지만 작업 내용을 되돌리는 스냅샷 기능이 없는 가상머신도 있어 본 가이드를 작성하게 되었습니다.
[code]FROM rockylinux:8
# 리비전: 4780b5e
# 패키지 버전 설정
# https://dlcdn.apache.org//httpd
# https://dlcdn.apache.org//apr
# https://sourceforge.net/projects/pcre/files/pcre
# https://cdn.kernel.org/pub/linux/kernel
# 404 Not Found 오류시 위 링크를 참조하여 버전 수정 후 재시도
ARG httpd_version=2.4.63
ARG apr_version=1.7.5
ARG apr_util_version=1.6.3
ARG pcre_version=8.45
ARG kernel_version=6.13
WORKDIR /root
RUN yum update -y && \\
yum install -y --allowerasing \\
man-db man-pages logrotate rsyslog sendmail procps-ng zip openssh \\
net-tools rsync kmod lvm2 openssl-devel bind dhcp-server dhcp-client \\
vim git wget curl sudo make gcc gcc-c++ autoconf automake flex cups \\
e2fsprogs util-linux coreutils cronie crontabs squid mdadm telnet telnet-server \\
nfs-utils samba samba-client network-scripts bison nmap traceroute epel-release \\
iproute iputils tar gzip bzip2 xz dump cpio file passwd ncurses ncurses-devel \\
vsftpd pciutils quota sed iptables firewalld bind-utils expat expat-devel \\
ypbind ypserv yp-tools rpcbind xinetd elfutils-libelf-devel openssh-server postfix
RUN curl -fSL https://dlcdn.apache.org//httpd/httpd-$httpd_version.tar.gz > httpd-$httpd_version.tar.gz && \\
tar -xf httpd-$httpd_version.tar.gz && \\
curl -fSL https://dlcdn.apache.org//apr/apr-$apr_version.tar.gz > apr-$apr_version.tar.gz && \\
tar -xf apr-$apr_version.tar.gz && \\
curl -fSL https://dlcdn.apache.org//apr/apr-util-$apr_util_version.tar.gz > apr-util-$apr_util_version.tar.gz && \\
tar -xf apr-util-$apr_util_version.tar.gz && \\
curl -fSL https://sourceforge.net/projects/pcre/files/pcre/$pcre_version/pcre-$pcre_version.tar.gz > pcre-$pcre_version.tar.gz && \\
tar -xf pcre-$pcre_version.tar.gz && \\
curl -fSL https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-$kernel_version.tar.xz > linux-$kernel_version.tar.xz && \\
tar -Jxf linux-$kernel_version.tar.xz && \\
mv apr-$apr_version apr-util-$apr_util_version httpd-$httpd_version pcre-$pcre_version /usr/local/src && \\
rm -rf *.tar.*
WORKDIR /usr/local/src
RUN apr-$apr_version/configure \\
--prefix=/usr/local/src/apr-$apr_version && \\
make && make install && \\
apr-util-$apr_util_version/configure \\
--prefix=/usr/local/src/apr-util-$apr_util_version \\
--with-apr=/usr/local/src/apr-$apr_version && \\
make && make install && \\
pcre-$pcre_version/configure \\
--prefix=/usr/local/src/pcre-$pcre_version \\
--with-apr=/usr/local/src/apr-$apr_version \\
--with-apr-util=/usr/local/src/apr-util-$apr_util_version && \\
make && make install
WORKDIR /usr/local/src/httpd-$httpd_version
RUN ./configure \\
--prefix=/usr/local/apache \\
--enable-modules=most \\
--enable-mods-shared=all \\
--enable-so \\
--with-apr=/usr/local/src/apr-$apr_version \\
--with-apr-util=/usr/local/src/apr-util-$apr_util_version \\
--with-pcre=/usr/local/src/pcre-$pcre_version/bin/pcre-config && \\
make && make install && \\
/usr/local/apache/bin/httpd -V
WORKDIR /root
RUN yum install -y --allowerasing tldr && \\
yum upgrade -y yum autoremove -y && yum clean all && \\
ln -s /usr/local/apache/man/man1/* /usr/share/man/man1 &&\\
ln -s /usr/local/apache/man/man8/* /usr/share/man/man8 &&\\
mandb
[/code]
- 위 코드를 편집기에 붙여넣고, 파일 이름을 확장자 없이 "Dockerfile" 로 저장합니다.
- 저장한 Dockerfile을 기반으로 이미지를 빌드하기 위해
docker build -t linuxmaster -f Dockerfile .명령을 사용합니다. (여기서는 이미지 별칭을 "linuxmaster" 로 지정하며, 다른 별칭도 사용할 수 있습니다) - 다음 명령을 실행하여 실습을 진행합니다.
docker run --rm -it linuxmaster - 빌드된 이미지를 제거하려면 다음 명령을 실행합니다.
docker rmi linuxmaster
만약 아래와 같은 오류를 해결하려면, 4번 명령을 docker run --rm -it --privileged=true linuxmaster /sbin/init와 같이 변경합니다. (단 실습 중 호스트에 예기치 않은 문제가 야기될 수 있습니다)
[code=bash]System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down[/code]
또한 docker run -it --name <컨테이너명> linuxmaster와 같이 입력할 경우 제공된 이름을 가진 컨테이너가 생성되지만 작업 내용이 보존되어, 실제 시험장 환경과 차이가 있을 수 있습니다. 컨테이너를 삭제하려면 docker rm <컨테이너명>를 입력합니다.
첨부파일
Dockerfile 3.2 KB댓글 (1)
- 피
피콜롤로
02.02 · 220.♡.204.226
댓글을 작성하려면 이 필요합니다.
이후 더 이상 못 배웠습니다.
다름 아닌 영타를 못쳐서입니다.
영타를 독수리타로 하니 너무 느려 진전이 없어 포기했습니다.
지금은 데탑에 하모니카 씁니다.
하모니카 다 좋은데 가끔 부트로더인가요.
뭐가 깨져 부팅이 안되고 뭐를 입력하라고 합니다.
무슨 말인지 모르니 다시 설치합니다.
이렇게 진전없이 일반 사용자에 머무르고 있습니다.