웹 서버 소프트웨어로 아파치 외에도 nginx가 유명하다. 웹 서버는 통신이 전제가 되므로 옵션을 통해 포트 번호를 지정해야 한다. 또한 데이터 베이스 서버는 MySQL 외에 PostgreSQL이나 MariaDB도 유명하다. 데이터베이스 관리 소프트웨어는 기본적으로 루트(root) 패스워드를 반드시 지정해야 한다.
웹 서버 및 데이터베이스 서버용 컨테이너 종류
- httpd: -d로 백그라운드로 실행, -p로 포트 번호 지정
- nginx: -d로 백그라운드로 실행, -p로 포트 번호 지정
- mysql: -d를 사용, 실행 시 -e MYSQL_ROOTPASSWORD와 같이 루트 패스워드를 지정
- postgres: -f 사용, 실행 시 -e POSTGRES_ROOT_PASSWORD와 같이 루트 패스워드를 지정
- mariadb: -d를 사용, 실행 시 -e MYSQL_ROOT_PASSWORD와 같이 루트 패스워드를 지정
컨테이너를 여러 번 만들다 보면 한 가지 문제가 발생한다. 컨테이너를 삭제해도 이미지는 그대로 남아 쌓이기 때문이다. 이미지가 늘어나면 스토리지 용량을 압박하게 되므로 필요 없어진 이미지는 그때 그때 삭제하도록 한다. 이미지를 삭제할 때는 이미지 ID 또는 이미지 이름으로 지정한다. 컨테이너와 거의 비슷하다. 그리고 해당 컨테이너가 남아 있으면 이미지를 삭제할 수 없으므로 docker ps -a 와 같이 컨테이너 목록을 출력해 확인하고 컨테이너를 먼저 종료 및 삭제한 다음 이미지를 삭제한다.
이미지를 삭제하기 위해서는 docker image rm 커맨드를 사용한다. docker image ~와 같은 커맨드를 사용해서 삭제해도 된다. 이 커맨드는 docker rm 과 같이 생략할 수 없다. 즉, docker rm 은 docker container rm 의 생략형이므로 이미지가 아닌 컨테이너가 삭제된다.
- 이미지 삭제 예: docker image rm ${이미지 이름}
- 여러 개의 이미지 삭제 예: docker image rm ${이미지 이름} ${이미지 이름} ${이미지 이름} ...
이미지를 삭제하려면 이미지 이름 또는 이미지 ID를 알아야 한다. 컨테이너 목록을 출력하는 docker ps 커맨드가 있듯 이미지 목록을 확인하는 커맨드는 docker image ls 이다. docker ps 커맨드의 정식 표기는 docker container ls 였던 것처럼 docker image ls 커맨드의 생략형도 ls 이다. 단, ps 와 달리 -a 옵션은 사용할 수 없다. 이미지는 컨테이너와 달리 실행 중, 종료 등의 상태를 가질 수 없기 때문이다. docker image ls 커맨드를 실행하면 ps 커맨드의 출력 결과와 마찬가지로 첫 번째 행에는 각 항목의 이름이 출력되며 두 번째 행부터 항목 값이 출력된다. 해당하는 이미지가 없다면 첫 번째 행만 출력된다.
워드프레스는 웹 사이트를 만들기 위한 소프트웨어로 서버에 설치하여 사용한다. 이와 유사한 소프트웨어로 Moable Type 등이 있다. 워드프레스는 워드프레스 프로그램 외에도 아파치나 데이터베이스, PHP 런타임 등을 필요로 하기 때문에 구축을 위해 자주 사용한다. 또한, 워드프레스는 MySQL 및 MariaDB를 지원한다. 워드프레스는 블로그 생성 도구와 같은 것으로, 웹 사이트 작성자가 작성한 내용을 데이터베이스에 저장하고 웹 사이트 열람자의 요청에 따라 웹 페이지를 보여준다. 즉, 프로그램 MySQL에 저장된 데이터를 읽고 쓸 수 있어야 하기 때문에 두 컨테이너가 연결돼 있어야 한다.
환경변수란, 운영체제에서 다양한 설정 값을 저장하는 장소를 가리킨다. 컨테이너의 설정 값을 이 환경변수를 통해 전달하는 경우가 많다. 어떤 환경변수를 사용할지는 컨테이너의 종류에 따라 달라진다.
워드프레스를 사용하려면 워드프레스 프로그램 외에도 아파치와 PHP 런타임, MySQL이 필요하다. 특히 아파치(Apache), PHP, MySQL에 리눅스(Linux)를 합친 조합을 LAMP라고 부른다. 소프트웨어가 발전하면서 아파치가 nginx로 바뀌기도 하고, MySQL이 MariaDB나 PostgresSQL로 바뀐 조합도 나타났지만 리눅스 + 웹 서버 + 프로그램이 언어 런타임 + 데이터베이스의 조합임은 변함이 없다.
레드마인은 티켓(누구에게 어떤 업무를 맡길지를 나타내는 ToDo)을 관리하는 소프트웨어로 소프트웨어 개발 현장에서 많이 사용된다. 레드마인 역시 워드프레스와 포트 번호 정도만 달고 거의 같은 구성을 띤다. 다만 옵션의 이름이 다르다는 점에 주의해야 한다. 레드마인은 실행 시 데이터베이스 접속에 실패하면 컨테이너가 종료된다. 만약 레드마인이 정상적으로 동작하지 않으면 docker stop, docker rm 커맨드로 레드마인 컨테이너만 삭제한 후 다시 실행한다.
'Study' 카테고리의 다른 글
[Study] 도커 & 쿠버네티스 - Lesson 6 (0) | 2024.11.06 |
---|---|
[Study] 도커 & 쿠버네티스 - Lesson 5 (0) | 2024.11.06 |
[Study] 도커 & 쿠버네티스 - Lesson 3 (0) | 2024.11.05 |
[Study] 도커 & 쿠버네티스 - Lesson 2 (0) | 2024.11.03 |
[Study] 도커 & 쿠버네티스 - Lesson 1 (0) | 2024.11.03 |
WRITTEN BY