티스토리 뷰

대부분의 서비스는 단일 프로그램으로 동작하지 않는다.

 

예로 Web Service와 WAS, DB등은 서로 연결되어 완전한 서비스로서 동작하는 것이 일반적이다.

 

위 서비스들을 VM 형태가 아닌 컨테이너 환경으로 구축하게 된다면, 여러 개의 애플리케이션을 한 컨테이너,

 

즉 All-in-one 형태로 구축할 수 있다. 그러나 이 구조는 VM 구조 인프라에서도 권장하지 않는 환경이다. 

 

1개의 애플리케이션을 1개의 VM 또는 1개의 컨테이너에 각각 구축하는 것이 모든 벤더에서의 권장 사항이다.

 

따로따로 서비스를 구축하면 VM간, 컨테이너간의 독립성을 보장함과 동시에 버전관리, 소스코드 모듈화등이 

 

더욱더 쉬워진다.

 

도커 공식홈페이지에서도 위와 같은 구조를 권장하며, 한 컨테이너에 프로세스 하나만 실행하는 것이 도커의 철학이다.

 

 

 

간단한 웹서비스와 데이터베이스로 테스트를 해보겠다. 

 

# docker run -d \
--name wordpressdb \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABASE=wordpress
mysql:5.7

- mysql 이미지를 사용해 데이터베이스 컨테이너를 생성

- '-d' , '-e' 옵션들은 추후에 자세히 설명

 

            * '-d' 옵션 : 생성 또는 실행하는 컨테이너가 백그라운드에서 돌도록 하는 명령어

            * '-e' 옵션 : 환경 변수, 즉 변수를 지정할 때 해당 옵션을 사용하여 지정하는 명령어

 

 

 

 

 

# docker run -d \
-e WORDPRESS_DB_PASSWORD=password
--name wordpress \
--link wordpressdb:mysql \
-p 80 \
wordpress

- 미리 준비된 워드프레스 이미지를 이용해 워드프레스 웹 서버 컨테이너를 생성

- '-p' 옵션에서 80을 입력했으므로 호스트의 포트 중 하나와 컨테이너의 80번 포트가 연결

 

 

 

 

- docker ps 명령어로 호스트의 어느 포트와 연결됐는지 확인 가능

 

 

 

# docker port wordpress

- 호스트와 바인딩된 포트만 확인하려면 docker port 명령을 사용

 

 

 

 

- 이 테스트에서는 호스트(10.200.155.21)의 49153 Port와 연결됐다. 

'Container & K8S & Automation > Docker' 카테고리의 다른 글

06. 도커 네트워크 (Docker Network)  (2) 2021.03.30
05. Docker 볼륨  (0) 2021.03.29
03. Docker 포트 바인딩  (0) 2021.03.24
02. Docker 명령어 [Ubuntu 20.04]  (0) 2021.03.23
01. Docker 설치 [Ubuntu 20.04]  (0) 2021.03.23