[Docker] 도커 활용 가이드: Apache 서버, 파일 복사, 환경변수 설정, 모니터링 방법

728x90
반응형

0. 컨테이너와 이미지 모두 삭제하기

개발 중이나 실습 후에 남은 컨테이너와 이미지를 깔끔하게 정리하고 싶을 때, 아래 명령어를 사용하면 모든 컨테이너와 이미지를 손쉽게 삭제할 수 있다.

  • 모든 컨테이너 중지: `docker stop $(docker ps -a -q)`
  • 모든 컨테이너 삭제: `docker rm $(docker ps -a -q)`
  • 모든 이미지 삭제: `docker rmi $(docker images -q)`

1. Apache Web Server 컨테이너 생성

Docker로 Apache(httpd) 웹 서버를 실행하려면 간단한 명령어 하나로 가능하다. 이 과정에서 Apache 서버가 80번 포트를 사용하기 때문에, 로컬에서 포트 8001로 접근할 수 있도록 설정해준다.

 

기본 정보

  • 이미지 이름: httpd
  • 포트번호: 80

 

컨테이너 생성 및 실행:

docker run --name apachewebserver -d -p 8001:80 httpd

 

확인 방법:

  • 컨테이너 구동 상태 확인: `docker ps`
  • 브라우저에서 확인: http://localhost:8001
  • 명령어로 확인: `curl localhost:8001`

 


2. Docker 환경변수 설정 (e 옵션)

> 환경 변수를 설정하는 옵션

MySQL과 같은 컨테이너는 실행할 때 환경변수(e 옵션)를 사용하여 초기 설정을 할 수 있다.

예를 들어, MySQL 5.7 이미지를 사용할 때 root 비밀번호초기 데이터베이스를 설정하려면 다음과 같은 환경 변수를 사용하면 된다.

 

MySQL 5.7 버전과 같은 경우는 관리자 비밀번호와 초기 데이터베이스 생성 그리고 유저와 유저 비밀번호 등을 설정할 수 있는 환경변수를 제공한다.

 

MySQL 5.7 환경변수:

  • MYSQL_ROOT_PASSWORD: 관리자 비밀번호
  • MYSQL_DATABASE: 생성할 데이터베이스 이름
  • MYSQL_USER: 생성할 유저 이름
  • MYSQL_PASSWORD: 유저 비밀번호

MySQL 컨테이너 생성:

docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=ys1234 -e MYSQL_DATABASE=itstudy mysql:5.7
MySQL 컨테이너 생성: root 비밀번호, 데이터베이스 이름 설정

3. 호스트 컴퓨터와 컨테이너 사이의 파일 복사

컨테이너 내부에서 파일을 수정하거나 설정 파일을 변경할 때, 직접 쉘에 접속해서 수정하는 방법도 있지만, 외부에서 작성한 파일을 복사해서 사용하는 것이 더 편리하다. Docker에서는 `docker cp` 명령어로 호스트와 컨테이너 간 파일을 쉽게 복사할 수 있다.

명령어

파일 복사 명령어:
docker cp source경로 destination경로
  • 컨테이너를 설정할 때 컨테이너이름:파일경로
  • 파일 경로를 작성할 때 파일 이름을 생략하면 파일 이름은 동일하게 복사

설정 파일을 수정해서 사용해야 하는 경우, 쉘에 접속해서 직접 수정하려고 하는 경우

⇒ 번거롭기도 하고 vi 와 같은 텍스트 에디터가 존재하지 않는 경우도 있어서 외부에서 만든 후 복사하는 것이 편리

 

실습: Apache 컨테이너에서 Welcome 페이지 수정

1. 컨테이너에서 호스트로 파일 복사:

docker cp apachewebserver:/usr/local/apache2/htdocs/index.html ./index.html
  • httpd 이미지의 컨테이너에서 보이는 welcome 파일의 경로로: `/usr/local/apache2/htdocs/index.html`

2. 호스트에서 수정 후 컨테이너로 다시 복사:

호스트 컴퓨터의 `index.html` 을 수정해서 컨테이너로 복사

docker cp ./index.html apachewebserver:/usr/local/apache2/htdocs/index.html

이 과정을 통해 웹 서버의 메인 화면을 원하는 대로 수정할 수 있다.

 


4. 컨테이너 모니터링 도구

컨테이너를 운영하다 보면 CPU, 메모리 사용량, 네트워크 트래픽 등의 모니터링 하면서 특이사항이 있을 때 대응해야 한다.

하지만, 컨테이너 환경에서는 기존의 모니터링 도구를 사용하는 것이 어렵다.

이를 위해 Google이 제공하는 cAdvisor라는 도구를 사용하면, 각 컨테이너의 리소스 사용량을 쉽게 확인할 수 있다.

설치 방법

cAdvisor 설치 및 실행:
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker:/var/lib/docker:ro -p 8080:8080 --detach=true --name=cadvisor gcr.io/cadvisor/cadvisor:v0.39.3

 

모니터링 방법

브라우저에서 http://localhost:8080 으로 접속하면 각 컨테이너의 리소스 사용량을 실시간으로 확인할 수 있다.

모니터링

브라우저에서 http://localhost:8080 으로 접속하면 각 컨테이너의 리소스 사용량을 실시간으로 확인할 수 있다.

 


이 글에서는 Docker의 기본적인 명령어 사용법부터 컨테이너 모니터링 도구인 cAdvisor까지 알아보았다. 실습을 통해 Docker의 기초적인 활용법을 익히고, 필요한 부분을 수정하거나 추가 설정하는 방법도 확인할 수 있었다.

728x90
반응형