웹사이트 검색

Linux의 Docker 컨테이너에 Apache를 설치하는 방법


개발자에게 지원을 제공하는 Linux 시스템 관리자라면 Docker에 대해 들어보셨을 것입니다. 그렇지 않다면, 이 소프트웨어 솔루션은 무엇보다도 운영 비용을 절감하고 배포를 가속화하는 데 도움을 줌으로써 오늘부터 귀하의 삶을 더 쉽게 만들어 줄 것입니다.

하지만 그것은 마법이 아닙니다. Docker는 플랫폼으로서 환경 간의 차이를 없애기 위해 실행하는 데 필요한 모든 도구와 함께 애플리케이션 패키지인 컨테이너를 활용합니다.

즉, 컨테이너화된 소프트웨어는 설치 위치에 관계없이 일관되게 작동하고 관리할 수 있습니다. 또한 컨테이너는 오래된 가상 머신보다 설정, 시작, 중지 및 유지 관리가 훨씬 쉽습니다.

이 두 기술의 차이점에 대해 더 자세히 알고 싶다면 공식 Docker 웹사이트에서 훌륭한 설명을 확인하세요.

설명을 위해 이 문서에서는 CentOS/RHEL, Rocky/Alma LinuxDebian/에 Docker를 설치하는 방법을 설명합니다. Ubuntu로 이동하고 Docker Hub에서 Apache 2.4 컨테이너를 가동하세요.

그런 다음 이를 사용하여 호스트에 웹 서버를 설치할 필요 없이 홈 디렉터리에서 간단한 웹 페이지를 제공합니다.

Linux에 도커 설치

시작하려면 다음 컬 명령을 사용하여 Docker를 설치해 보겠습니다. 그러면 Docker 저장소를 시스템에 추가하고 패키지를 설치하는 쉘 스크립트를 다운로드하여 실행합니다.

curl -fsSL https://get.docker.com | sh

그런 다음 systemctl 명령을 사용하여 기본 Docker 서비스를 시작하고 재부팅 중에 시작되도록 활성화하고 상태를 확인합니다.

systemctl start docker
systemctl enable docker
systemctl status docker

이 시점에서는 간단하게 실행할 수 있습니다.

docker

사용 가능한 명령 목록을 보거나 도움말을 보려면

docker COMMAND --help
docker ps --help

시스템에 있는 컨테이너를 나열하는 방법을 알려줄 것입니다.

docker run --help

컨테이너를 조작하는 데 사용할 수 있는 모든 옵션을 인쇄합니다.

Apache 컨테이너 설정

Docker 생태계의 놀라운 점 중 하나는 쉽게 다운로드하여 사용할 수 있는 표준 컨테이너가 수십 개 있다는 것입니다.

다음 예에서는 현재 터미널에서 분리된 tecmint-web이라는 Apache 2.4 컨테이너를 인스턴스화합니다. Docker Hubhttpd:2.4라는 이미지를 사용하겠습니다.

우리의 계획은 포트 8080의 공개 IP 주소에 대한 요청이 컨테이너의 포트 80으로 리디렉션되도록 하는 것입니다. 또한 컨테이너 자체에서 콘텐츠를 제공하는 대신 /home/user/website에서 간단한 웹페이지를 제공합니다.

컨테이너의 /usr/local/apache2/htdocs//home/user/website/를 매핑하여 이를 수행합니다. 계속 진행하려면 sudo를 사용하거나 root로 로그인해야 하며, 각 디렉터리 끝에 있는 슬래시를 생략하지 마세요.

sudo docker run -dit --name tecmint-web -p 8080:80 -v /home/user/website/:/usr/local/apache2/htdocs/ httpd:2.4

이제 Apache 컨테이너가 실행 중이어야 합니다.

sudo docker ps

이제 /home/user/website 디렉토리 내에 docker.html이라는 간단한 웹 페이지를 만들어 보겠습니다.

vi /home/user/website/docker.html

다음 샘플 HTML 콘텐츠를 파일에 추가합니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Learn Docker at linux-console.net</title>
</head>
<body>
    <h1>Learn Docker With Us</h1>   
</body>
</html>

다음으로, 브라우저에서 Server-IP:8080/docker.html(여기서 Server-IP은 호스트의 공개 IP 주소)을 가리킵니다. 이전에 만든 페이지가 표시됩니다.

원하는 경우 이제 컨테이너를 중지할 수 있습니다.

sudo docker stop tecmint-web

그것을 제거하십시오 :

sudo docker rm tecmint-web

정리를 마치려면 컨테이너에 사용된 이미지를 삭제하는 것이 좋습니다(다른 Apache 2.4 컨테이너를 곧 생성할 계획이라면 이 단계를 생략하세요).

sudo docker image remove httpd:2.4

위의 모든 단계에서 호스트에 웹 서버를 설치할 필요가 없었습니다.

요약

이 글에서는 Docker를 설치하고 컨테이너를 조작하는 방법을 설명했습니다. 안타깝게도 이는 단지 기본 사항일 뿐입니다. Docker(및 일반적인 컨테이너)를 더욱 심층적으로 다루는 전체 과정, 서적, 인증 시험이 있습니다.

Docker에 대해 자세히 알아보려면 Docker를 설치하고, 컨테이너에서 애플리케이션을 실행하고, dockerfile을 사용하여 Docker 이미지를 자동으로 빌드하는 방법을 설명하는 3개 기사 시리즈를 이미 다루었습니다.

  • Docker를 설치하고 CentOS 및 RHEL에서 기본 컨테이너 조작 알아보기
  • CentOS/RHEL의 Docker 컨테이너에 애플리케이션을 배포하고 실행하는 방법
  • CentOS/RHEL에서 Dockerfile을 사용하여 Docker 이미지를 자동으로 빌드 및 구성
  • Docker 이미지, 컨테이너 및 볼륨을 제거하는 방법

이것을 출발점으로 생각하고 질문이나 의견이 있으면 알려주십시오. 여러분의 의견을 기다리겠습니다!