Apache Docker 컨테이너 설정하기

Docker 및 컨테이너에 익숙하지 않은 경우, Apache Docker 컨테이너 설정은 시작하기에 좋은 방법입니다. Docker를 사용하여 응용 프로그램을 만드는 것은 가벼운 기술과 보안 때문에 큰 이점이 있습니다.

이 튜토리얼에서는 Ubuntu에 Apache Docker 컨테이너를 설정하는 방법을 배울 수 있습니다. Docker로 시작하고 Apache 웹 서버도 얻게되는 방법을 배우기 위해이 튜토리얼을 사용하십시오!

전제 조건

단계별로 따라가려면이 튜토리얼에서 Docker가 설치된 Ubuntu 14.04.4 LTS 이상의 머신이 있는지 확인하십시오.이 튜토리얼은 Ubuntu 18.04.5 LTS를 사용하며 Docker v19.03.8 및 공용 IP 주소 13.213.48.113을 사용합니다.

Apache Docker 컨테이너 설정

Docker를 이미 설치한 것으로 가정하고 Apache 컨테이너를 먼저 설정해 봅시다. 나중에 시작하는 방법을 배우게 될 것입니다.

Apache Docker 컨테이너를 빠르게 시작하는 가장 쉬운 방법 중 하나는 공식 Docker 레지스트리인 Docker Hub에서 기존 컨테이너 이미지를 다운로드하는 것입니다. 이 예제에서는 Apache라는 Docker 컨테이너를 다운로드하고 실행합니다.

몇 가지 Docker 명령어만으로 Apache 인스턴스를 실행할 수 있습니다. 아래 단계를 따라 주세요.

참고: 이 튜토리얼은 Docker 명령어 실행에 대해 자세히 다루지 않습니다. Docker 명령어에 대해 더 알아보려면 Docker 명령 줄 문서 페이지를 방문하세요.

1. Ubuntu 기기에서 터미널을 엽니다.

2. 아래의 docker pull 명령어를 실행하여 Apache를 포함한 Docker 이미지인 httpd를 다운로드합니다. 이 명령어는 Docker 레지스트리에서 Apache 이미지를 다운로드 또는 풀합니다. 아래와 같이 표시됩니다.

# Docker 이미지를 로컬 기기로 가져옵니다.
docker pull httpd

아래 스크린샷은 Docker Hub에서 이미지를 가져올 때 예상되는 결과를 보여줍니다.

Pulling the Apache image from Docker Hub

3. 다음으로, 아래의 docker images 명령어를 실행하여 컴퓨터에 있는 모든 이미지를 나열하여 이미지를 다운로드했는지 확인합니다.

# Docker 이미지를 확인합니다.
docker images

아래에서 볼 수 있듯이, Docker Hub에서 다운로드한 이미지를 포함한 Docker 이미지가 하나 있습니다.

Checking the Docker images

Docker 명령어를 사용하여 Apache 컨테이너 실행.

이전 섹션에서 Docker 허브에서 Docker 이미지를 다운로드했습니다. 이제 해당 이미지로 컨테이너를 생성할 준비가 되었습니다. Apache 컨테이너를 실행하려면 다음과 같이 Docker 명령을 실행해야 합니다:

1. 다운로드한 Apache Docker 이미지를 기반으로 새 컨테이너를 생성하기 위해 docker run 명령을 호출합니다.

# docker-apache라는 새로운 도커 컨테이너 실행 (--name)
# 로컬 컴퓨터의 포트 80을 컨테이너의 포트 80으로 매핑 (-p 80:80)
# 백그라운드 모드로 실행 (-d)
# Apache 이미지 사용
docker run -d --name docker-apache -p 80:80 -d httpd

그런 다음 docker run 명령은 방금 생성한 컨테이너의 고유한 컨테이너 ID를 반환합니다. 이 컨테이너 ID를 나중에 컨테이너를 삭제하려는 경우에 대비하여 아래 강조 표시된 상자에 저장하세요.

Running a new Docker container using an Apache image

2. Apache 컨테이너가 실행되면 웹 브라우저를 사용하여 공용 IP 주소:80로 이동하여 Apache 웹 인터페이스에 액세스할 수 있는지 확인합니다. 아래에서 볼 수 있는 메시지와 같은 메시지가 표시된다면 Apache Docker 컨테이너를 성공적으로 시작한 것입니다.

Ubuntu 14.04.4 LTS 머신의 보안 그룹에서 포트 80의 인바운드 포트가 허용되었는지 확인하세요.

Accessing the Apach

3. 마지막으로, 더 이상 실행할 필요가 없는 경우 아래의 docker stop 명령을 실행하여 컨테이너를 정지시킵니다. 이 명령은 컨테이너 인스턴스를 정상적으로 종료시킵니다.

# 컨테이너 ID를 본인 것으로 변경하세요.
# 참고: 컨테이너 ID의 처음 12자리만 지정해도 충분합니다.
docker stop aaaee64a4512

또는, docker stop 명령에 컨테이너 이름을 지정하여 실행 중인 컨테이너를 정지할 수도 있습니다 (docker stop docker-apache).

Docker 파일에서 Apache Docker 컨테이너 실행

이전 섹션에서는 기본 httpd Docker 이미지를 실행하여 Apache Docker 컨테이너를 시작하는 방법을 배웠습니다. 만약 베이스 이미지를 업데이트하여 다른 콘텐츠를 표시하거나 다른 포트에서 노출해야 한다면 어떻게 해야 할까요?

Docker 파일을 사용하여 컨테이너를 배포하면 동일한 설정을 다른 운영 체제에서 테스트할 때 수동으로 이미지를 생성하는 단계를 제거할 수 있습니다. Docker 파일 접근 방식은 Docker 이미지의 자동화된 스크립트입니다.

이제 Docker 파일을 생성하고 해당 파일에서 컨테이너를 실행해 보겠습니다.

1. ~/apache-server-docker-demo라는 이름의 폴더를 생성하고, 작업 디렉토리를 해당 폴더로 변경합니다.

mkdir ~/apache-server-docker-demo
cd ~/apache-server-docker-demo

2. 다른 파일을 생성하고 아래 구성을 복사하여 파일을 index.html로 저장하십시오. 이 파일은 ~/apache-server-docker-demo 디렉토리 안에 저장됩니다. index.html 파일은 컨테이너가 시작되면 이 강좌에서 나중에 확인하게 될 Apache 컨테이너를 Docker에서 실행하는 방법을 가르치는 튜토리얼입니다.를 표시하는 HTML 페이지입니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>This tutorial will teach how to Run Apache container in docker .</title>
</head>
<body>
    <h1>This tutorial will teach how to Run Apache container in docker , lets GO!</h1>
</body>
</html>

3. 다른 파일을 생성하고 아래 구성을 복사하여 파일을 Docker 파일로 저장하십시오. 이 파일은 ~/apache-server-docker-demo 디렉토리 안에 저장됩니다. 완료되면 Docker는이 DockerFile을 사용하여 새 Docker 이미지를 빌드하기 위해 필요한 모든 명령을 실행합니다.

아래 DockerFile에는 Apache 컨테이너를 빌드하는 데 사용되는 다양한 단계/명령이 포함되어 있습니다:

  • Maintainer Maintainer 명령은 이 파일을 관리하는 작성자에 대한 정보를 제공합니다.
  • FROM FROM 명령은 새로운 빌드 단계를 초기화하고 후속 명령에 대한 기본 이미지를 설정합니다. 아래 코드 스니펫에서 centos:7이 기본 이미지입니다.
  • COPY COPY 명령은 호스트 머신(Docker 호스트)에서 컨테이너로 파일을 복사합니다. 이전에 Docker 호스트에서 생성한 ****index.html 파일이 컨테이너의 /var/www/html 디렉토리로 복사됩니다.
  • EXPOSEEXPOSE명령은 Docker에게 컨테이너가 런타임에서 지정된 네트워크 포트에서 수신 대기한다는 것을 알려줍니다. Apache 웹 서버는 기본적으로 포트 80에서 수신 대기합니다.
# Dockerfile에 새 이미지를 생성하기 위한 명령 (httpd 기반 이미지 위에)
FROM httpd:2.4
MAINTAINER [email protected]
COPY index.html /var/www/html/
EXPOSE 80

4. 다음으로, 아래의 필수 파일을 모두 확인하기 위해 tree 명령을 실행하세요.

Verify all the required files

5. 그 다음, docker build 명령을 사용하여 이미지를 빌드하세요. t 플래그는 이미지에 apache-server:v1 태그를 지정하는데 사용되며.은 현재 작업 디렉토리를 나타냅니다.

# Docker 이미지 빌드
sudo docker build  -t apache-server:v1 .
build the image by running the docker build command

Docker가 빌드되면 다양한 속성이 반환됩니다. 그 중 하나는 REPOSITORY입니다. REPOSITORY 이름은 apache-server이며 이미지는 아래와 같이 버전 v1로 태그되어 있습니다.

Repository Attributes

6. 마지막으로, docker run 명령을 사용하여 새로 빌드된 이미지를 사용하여 Apache 컨테이너를 실행하세요.

p 플래그는 컨테이너의 포트를 호스트에 공개합니다(80:80). -it 플래그는 Docker가 컨테이너의 stdin에 연결된 가상 터미널을 할당하도록 지시합니다. 의사 터미널이란 용어입니다.

# 새로 빌드된 이미지를 사용하여 Apache 컨테이너 실행
docker run -it -p 80:80 apache-server:v1

7. 최종적으로, 웹 브라우저를 사용하여 공인 IP 주소:80로 이동하여 Apache 웹 인터페이스에 액세스할 수 있는지 확인하세요. 웹 인터페이스에는 이 메시지가 표시됩니다. 이는 index.html 파일을 생성하고 Docker가 컨테이너가 시작될 때 이를 컨테이너로 복사했기 때문입니다.

verify if you can access the Apache web interface

결론

이 튜토리얼은 Docker 이미지를 사용하여 Apache Docker 컨테이너를 설정하는 과정을 도와드리기 위해 제작되었습니다. Docker 파일을 사용하여 Apache 컨테이너를 시작하는 방법을 배웠으며, 이를 통해 원하는 대로 컨테이너를 편집하고 빌드할 수 있습니다.

그렇다면 Apache 서버 Docker 이미지에서 무엇을 구축할 예정인가요?

Source:
https://adamtheautomator.com/apache-docker/