분리된 애플리케이션 컨테이너 구축하기

이주희·2022년 10월 26일
0

Docker

목록 보기
6/16

한 컨테이너에는 프로세스 하나만!

서비스를 컨테이너화(Containerize) 할 때 여러 개의 애플리케이션을 한 컨테이너에 설치할 수도 있지만,
각 컨테이너에 애플리케이션을 하나만 동작시키는 것이 권장된다.

💡 why?

  • 1) 컨테이너 간의 독립성을 보장할 수 있다.
  • 2) 애플리케이션의 버전 관리, 소스코드 모듈화 등이 쉬워진다.
  • 3) 도커 이미지를 관리하고 컴포넌트의 독립성을 유지하기가 쉽다.

    👉🏻 한 컨테이너에 프로세스 하나만 실행하는 것이 도커의 철학이다!


별도의 컨테이너 구축하기

// 데이터베이스 컨테이너 생성
docker run -d \
--name wordpressdb \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABASE=wordpress \
mysql:5.7

// 워드프레스 웹 서버 컨테이너 생성
docker run -d \
-e WORDPRESS_DB_HOST=mysql \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=password \
--name wordpress \ 
--link wordpressdb:mysql \
-p 80 \
wordpress

-d

  • Detached 모드로 컨테이너를 실행한다.
  • 컨테이너를 백그라운드에서 동작하는 애플리케이션으로써 실행하도록 설정한다.
  • Detaiched 모드인 컨테이너는 반드시 컨테이너에서 프로그램이 실행되어야 하며, 포그라운드 프로그램이 실행되지 않으면 컨테이너는 종료된다.
  • 컨테이너 내부에 터미널을 차지하는 포그라운드로써 동작하는 프로그램이 없으면 컨테이너는 시작되지 않는다 !
  • -i -t는 컨테이너 내부로 진입하도록 attach 가능한 상태로 설정하는 옵션

-e

  • 컨테이너 내부의 환경변수를 설정한다.
  • 환경변수 확인하기 👉🏻 echo ${ENVIRONMENT_NAME}
  • 컨테이너에 별명으로 접근하도록 설정한다.
  • --link에 입력된 컨테이너가 실행 중이지 않거나 존재하지 않는다면 --link를 적용한 컨테이너 또한 실행할 수 없다.
  • 컨테이너를 연결해주는 것뿐만 아니라 컨테이너 실행 순서의 의존성도 정의해준다.
  • --link 옵션은 deprecated된 옵션으로, 도커 브리지 네트워크를 사용하는 것을 권장한다
// wordpressdb 컨테이너를 mysql이라는 이름으로 설정한다.
--link wordpressdb:mysql
👉🏻 이렇게 설정하면, 컨테이너의 IP를 몰라도 mysql이라는 호스트명으로 접근할 수 있다.
profile
🍓e-juhee.tistory.com 👈🏻 이사중

0개의 댓글