#docker #kubernetes #container #orchestrator #microservice #infrastructure-as-code #devops #ci #cd

제목[re]도커 컨테이너의 실행 순서? 관련 질문입니다.2021-11-23 11:21
작성자

안녕하세요 데이터센터 프로그래밍 조교 김민석입니다. 


제가 궁금한 사항들과 제안하는 방법은 다음과 같습니다. 
1. 처리담당 컨테이너를 서버에 사진이 업로드 되면 컨테이너를 종료시키고 싶으신 이유가 있을까요? 

 이 부분에서는 컨테이너에 있는 프로그램이 종료된다는 의미이면 될것 같긴 합니다. 만약 웹사이트에 이미지 변환 프로그램처럼 구현하시길 원하신다면 도커의 컨테이너 실행순서 보다는 내부 프로그램을 수정하시는 편이 좋지 않을까 하는 저의 의견입니다. 


 2, 제안 방법 

 그래서 방법으로는 

1) 서버에 사진을 업로드한다. (https://~~~~~)에 사진 올릴 수 있는 html 코드나 직접 업로드가 가능하겠죠..? 

2) 서버 컨테이너에서 이미지 처리 컨테이너로 request를 보냅니다. 이 방법으로는 여러가지가 있을 것 같습니다. 웹서버를 작성하여 REST API를 사용해 보내거나, 직접적으로 코드를 실행 시키는 방법, 컨테이너간 통신을 활용한 방법(https://velog.io/@alvin/Referring-4.-Docker-Network%EB%A1%9C-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%82%AC%EC%9D%B4-%ED%86%B5%EC%8B%A0%ED%95%98%EA%B8%B0)등 그 외에도 다양한 방법이 있을 것으로 생각됩니다. 그 이유는 각 컨테이너는 독립된 컴퓨터로 간주되기 때문에 마치 데스크톱에서 노트북으로 명령을 주는 경우로 생각을 하셔야할 것 같습니다. 

3) 이미지 처리 컨테이너가 업로드한 서버 컨테이너에 request를 보내거나 업로드한 서버에 loop를 돌려서 volume의 변화가 있으면 페이지를 업데이트 하는 방식을 사용하여 화면에 보여주면 될 것 같습니다. 


 3. 개인적인 의견 

 저의 개인적인 의견으로 도커와 쿠버네티스는 서버 관리를 위한 프로그램이지 서버 내부를 위한 프로그램은 아니라고 생각합니다. 질문자 학우님께서 도커 컴포즈를 활용해서 위와 같은 서비스를 구현해보고 싶으시다면 도커 컴포즈를 환경 구축용으로만 사용하시는게 좋지 않을까 생각이 됩니다. 

도커 컴포즈 참조 : (https://docs.docker.com/compose/)


 예를 들어, build 버전은 무엇이고 port forwarding은 어떤걸로 할 것이며 volume은 어디에 있는 것을 사용하고 apache 버전은 몇을 쓰고 php 7.2의 image를 사용하고자 하고 network는 어떤 것을 쓸 것이다. 정도만 도커로 구현을 해주시고 실제 원하는 서비스는 내부에서 구축을 하신다고 생각하시는게 좋을 것 같습니다. 


짧게 요약을 하면 1) 컨테이너는 종료하지 않고 계속 어딘가에 떠 있어야합니다. 2) 컨테이너 내부에서 서버가 돌거나 loop가 돌거나 컨테이너끼리 통신이 필요합니다. 3) 도커 컴포즈는 build과 컨테이너 생산을 편하게 하기 위함입니다! 


저의 의견은 위와 같습니다! 부디 도움이 되길 바랍니다. 

감사합니다.

댓글