아파치, Nginx, MySQL 컨테이너 생성

728x90
반응형

출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스

 

  • 이번 장에서는 아파치와 nginx, mysql 컨테이너를 생성해본다.

 

아파치 컨테이너를 여러 개 실행하기

  • 컨테이너를 여러 개 실행할 때 호스트 컴퓨터의 포트 넘버가 중복되어서는 안된다.
  • 컨테이너 포트는 중복되어도 무방하다.

 

실습 내용

  1. 컨테이너 생성 및 실행
  2. 컨테이너 상태 확인
  3. 웹 브라우저를 통한 접근 확인
  4. 컨테이너 종료
  5. 컨테이너 삭제
  6. 컨테이너 상태 확인

 

생성할 컨테이너 정보

  • 컨테이너 이름
    • zw_apache1
    • zw_apache2
    • zw_apache3
  • 이미지 이름
    • httpd
    • httpd
    • httpd
  • 포트 설정
    • 8081:80
    • 8082:80
    • 8083:80

 

실습

 

 

docker run --name zw_apache1 -d -p 8081:80 httpd
docker run --name zw_apache2 -d -p 8082:80 httpd
docker run --name zw_apache3 -d -p 8083:80 httpd

docker ps -a

 

3개의 아파치 컨테이너를 생성하고 실행한다. 이때 이름과 호스트 포트 넘버는 각기 다르게 설정해준다.

 

ps 커맨드를 입력하면 3개의 아파치 컨테이너가 Up 상태로 생성된 것을 확인할 수 있다. 물론 docker desktop에서도 확인할 수 있다.

 

 

docker -exec -it zw_apache1 bash

apt update
apt -y install nano

cd htdocs/
nano index.html

 

웹 브라우저에서 각 아파치 컨테이너를 구분하기 위해 index.html을 수정하자.

nano 에디터를 설치하고 htdocs 디렉토리로 들어가 index.html을 nano 에디터로 열고 수정한다.

 

위 코드를 zw_apache2, zw_apache3 도 똑같이 반복해준다.

 

 

웹 브라우저를 열고 http://localhost:8081, http://localhost:8082,  http://localhost:8083 로 접속하면 각 아파치 컨테이너에 성공적으로 접속이 된다.

 

 

docker stop zw_apache1
docker stop zw_apache2
docker stop zw_apache3

docker ps -a


아파치 컨테이너들을 모두 종료시킨다. ps 커맨드를 통해 컨테이너들이 정상적으로 종료되었는지 확인한다.

 

 

아파치 컨테이너들을 제거한다.

 

 

Nginx 컨테이너 실행

  • nginx는 아파치와 비슷한 웹 서버 소프트웨어다.

 

실습 내용

  1. 컨테이너 생성 및 실행
  2. 컨테이너 상태 확인
  3. 웹 브라우저를 통한 접근 확인
  4. 컨테이너 종료
  5. 컨테이너 삭제
  6. 컨테이너 상태 확인

 

생성할 컨테이너 정보

  • 컨테이너 이름
    • zw_nginx
  • 이미지 이름
    • nginx
  • 포트 설정
    • 8084:80

 

실습

 

 

docker run --name zw_nginx -d -p 8084:80 nginx

docker ps

 

nginx 이미지를 다운로드 받아서 실행한다. ps 커맨드를 입력하면 nginx 컨테이너가 잘 동작하는 것을 확인할 수 있다. docker desktop에서도 확인 가능하다.

 

 

웹 브라우저에서 localhost:8084 로 접속하면 nginx 초기 화면이 나타난다.

 

 

docker stop zw_nginx
docker ps -a

 

zw_nginx 컨테이너를 중지시킨다. ps -a 커맨드를 입력하면 중지된 것을 확인할 수 있다.(docker desktop에서도 확인 가능)

 

 

docker rm zw_nginx
docker ps -a

 

zw_nginx 컨테이너를 제거한다.

 

 

MySQL 컨테이너 실행

  • MySQL은 MariaDB, PostgreSQL 같은 RDBMS 이다.
  • MySQL 컨테이너는 인자를 반드시 지정해야 한다.
  • 연습을 위해 생략형 명령을 사용한다. 이는 반드시 필요한 루트 패스워드만을 옵션으로 지정한다.

 

실습 내용

  1. 컨테이너 생성 및 실행
  2. 컨테이너 상태 확인
  3. 컨테이너 종료
  4. 컨테이너 삭제
  5. 컨테이너 상태 확인

 

컨테이너 정보

  • 컨테이너 이름
    • zw_mysql
  • 이미지 이름
    • mysql
  • MySQL 루트 패스워드
    • myrootpass

 

실습

 

docker run --name zw_mysql -dit -e MYSQL_ROOT_PASSWORD=myrootpass mysql
docker ps

 

mysql 이미지를 다운로드 받고 컨테이너 이름을 zw_mysql로 설정한다. 루트 패스워드는 myrootpass로 설정하였다.

 

 

docker stop zw_mysql
docker rm zw_mysql
docker ps -a

 

mysql 컨테이너를 중지시키고 제거한다.

 

 

728x90
반응형