본문 바로가기
docker & kubernetes

도커 사용방법 13 | Docker&Kubernetes 학습 20

by 그갸거겨 2024. 11. 23.
728x90
반응형
다양한 유형의 컨테이너를 알아보고, 그 중 apache 컨테이너 여러 개를 직접 실행해보자.

리눅스 운영체제가 담긴 컨테이너

  • 리눅스 운영체제 컨테이너는 커너테이너 속 파일 시스템을 다루는 것을 전제하므로, 인자로 셸 명령어를 지정한다.
이미지 이름 컨테이너의 내용 컨테이너 실행에 주로 사용되는 옵션 및 인자
ubuntu 우분투 -d 없이 -it 옵션만 사용. 인자로는 /bin/bash 등 셸 명령어를 지정한다.
centos CentOS -d 없이 -it 옵션만 사용. 인자로는 /bin/bash 등 셸 명령어를 지정한다.
debian 데비안 -d 없이 -it 옵션만 사용. 인자로는 /bin/bash 등 셸 명령어를 지정한다.
fedora 페도라 -d 없이 -it 옵션만 사용. 인자로는 /bin/bash 등 셸 명령어를 지정한다.
busybox BizyBox -d 없이 -it 옵션만 사용. 인자로는 /bin/bash 등 셸 명령어를 지정한다.
alpine 알파인 리눅스 -d 없이 -it 옵션만 사용. 인자로는 /bin/bash 등 셸 명령어를 지정한다.

 

웹 서버/데이터베이스 서버용 컨테이너

  • 웹 서버는 통신이 전제가 되므로, 옵션을 통해 포트 번호를 지정해야 한다.
  • 데이터베이스 서버는 기본적으로 루트 패스워드를 반드시 지정해야 한다.
이미지 이름 컨테이너의 내용 컨테이너 실행에 주로 사용되는 옵션 및 인자
httpd Apache -d로 백그라운드 실행. -pㄹ 포트 번호 지정
nginx Nginx -d로 백그라운드 실행. -pㄹ 포트 번호 지정
mysql MySQL -d를 사용. 실행 시 -e MYSQL_ROOT_PASSWORD와 같이 루트 패스워드를 지정
postgres PostgreSQL -d를 사용. 실행 시 -e POSTGRES_ROOT_PASSWORD와 같이 루트 패스워드를 지정
mariadb MariaDB -d를 사용. 실행 시 -e MYSQL_ROOT_PASSWORD와 같이 루트 패스워드를 지정

프로그램 실행을 위한 런타임과 그 외 소프트웨어

  • 프로그램을 실행하려면 해당 언어의 실행 환경인 런타임이 필요하다. 런타임 역시 컨테이너 형태로 제공된다.
이미지 이름 컨테이너의 내용 컨테이너 실행에 주로 사용되는 옵션 및 인자
openjdk 자바 런타임 -d를 사용하지 않고, 인자로 java 명령 등을 지정해 도구 형태로 사용한다.
python 파이썬 런타임 -d를 사용하지 않고, 인자로 python 명령 등을 지정해 도구 형태로 사용한다.
php PHP 런타임 웹 서버가 포함된 것과 실행 명령만 포함된 것으로 나뉘어 제공된다.
ruby 루비 런타임 웹 서버가 포함된 것과 실행 명령만 포함된 것으로 나뉘어 제공된다.
perl 펄 런타임 -d를 사용하지 않고, 인자로 perl 명령 등을 지정해 도구 형태로 사용한다.
gcc C/C++ 컴파일러 -d를 사용하지 않고, 인자로 gcc 명령 등을 지정해 도구 형태로 사용한다.
node Node.js -d를 사용하지 않고, 인자로 app 명령 등을 지정해 도구 형태로 사용한다.
registry 도커 레지스트리 -d 옵션을 사용해 백그라운드로 실행하며, -p 옵션으로 포트 번호를 지정한다.
wordpress WordPress -d 옵션을 사용해 백그라운드로 실행하며, -p 옵션으로 포트 번호를 지정한다.
MySQL 또는 MariaDB가 필요하다. 접속에 필요한 패스워드는 -e 옵션으로 지정한다.
nextcloud NextCloud -d 옵션을 사용해 백그라운드로 실행한다. -p 옵션으로 포트 번호를 지정한다.
redmine Redmine -d 옵션을 사용해 백그라운드로 실행하며, -p 옵션으로 포트 번호를 지정한다.
PostgreSQL 또는 MySQL이 필요하다.

 

실습내용

생성할 컨테이너의 정보

항목
컨테이너 이름 apa00ex3 apa00ex4 apa00ex5
이미지 이름 httpd httpd httpd
포트 설정 8081:80 8082:80 8083:80

1. run 명령어 실행

  • 비슷한 명령어를 여러 번 입력할 때는, 윗 방향 방향키를 눌러 이전 명령어를 불러와 사용하자
  • 터미널 창에 입력할 명령어
    • docker run --name apa00ex3 -d -p 8081:80 httpd
    • docker run --name apa00ex4 -d -p 8082:80 httpd
    • docker run --name apa00ex5 -d -p 8083:80 httpd

2. ps 명령어를 사용해, 컨테이너가 실행 중인지 확인

  • STATUS 항목의 값이 'Up'이라고 나오면 컨테이너가 실행 중이라는 뜻이다.

3. 웹 브라우저를 통해 아파치에 접근할 수 있는지 확인

  • 웹 브라우저에서 아래 주소로 접근해 아파치 초기화면이 나타나는지 확인한다.
    • http://localhost:8081
    • http://localhost:8082
    • http://localhost:8083

4. stop 명령어를 사용해, 컨테이너 종료

  • 터미널 창에 입력할 명령어
    • docker stop apa00ex3
    • docker stop apa00ex4
    • docker stop apa00ex5

5. rm 명령어를 사용해 컨테이너 삭제

  • 터미널 창에 입력할 명령어
    • docker rm apa00ex3
    • docker rm apa00ex4
    • docker rm apa00ex5

6. ps 명령어와 인자를 사용해, 컨테이너가 삭제됐는지 확인

  • 터미널 창에 입력할 명령어: docker ps -a

728x90