출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스
- 이번 장에서는 아파치와 nginx, mysql 컨테이너를 생성해본다.
아파치 컨테이너를 여러 개 실행하기
- 컨테이너를 여러 개 실행할 때 호스트 컴퓨터의 포트 넘버가 중복되어서는 안된다.
- 컨테이너 포트는 중복되어도 무방하다.
실습 내용
- 컨테이너 생성 및 실행
- 컨테이너 상태 확인
- 웹 브라우저를 통한 접근 확인
- 컨테이너 종료
- 컨테이너 삭제
- 컨테이너 상태 확인
생성할 컨테이너 정보
- 컨테이너 이름
- 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는 아파치와 비슷한 웹 서버 소프트웨어다.
실습 내용
- 컨테이너 생성 및 실행
- 컨테이너 상태 확인
- 웹 브라우저를 통한 접근 확인
- 컨테이너 종료
- 컨테이너 삭제
- 컨테이너 상태 확인
생성할 컨테이너 정보
- 컨테이너 이름
- 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 컨테이너는 인자를 반드시 지정해야 한다.
- 연습을 위해 생략형 명령을 사용한다. 이는 반드시 필요한 루트 패스워드만을 옵션으로 지정한다.
실습 내용
- 컨테이너 생성 및 실행
- 컨테이너 상태 확인
- 컨테이너 종료
- 컨테이너 삭제
- 컨테이너 상태 확인
컨테이너 정보
- 컨테이너 이름
- 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 컨테이너를 중지시키고 제거한다.
'Study > 도커와 쿠버네티스 (Docker & Kubernetes)' 카테고리의 다른 글
컨테이너에 워드프레스 구축 (8) | 2024.02.10 |
---|---|
도커 이미지 삭제 (0) | 2024.02.09 |
컨테이너의 통신 (0) | 2024.02.07 |
컨테이너의 생성과 삭제, 실행, 정지 (0) | 2024.02.07 |
도커 명령어 (0) | 2024.02.05 |