DevOps/AWS Architecture
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: Dockerfile
Dockerfile 문법 https://docs.docker.com/engine/reference/builder/ Dockerfile reference docs.docker.com 우선 위 공식 홈페이지의 Dockerfile reference를 참고하여 포스팅하도록 하겠습니다. Environment replacement 우선 환경변수의 기본 문법에 대해서 살펴보도록 하겠습니다. 여기서 ${FOO}에서 FOO는 컨테이너의 환경변수 입니다. ENV라는 지시어를 사용하면 이미지 빌드타임과, 컨테이너 런타임에 환경변수값을 전달할 수 있게됩니다. ARG 다음으로는 ARG(인자)에 대해 알아보도록 하겠습니다. 공식문서를 보면 Default values를 한번에 지정해줄 수도, 아니면 그냥 인자만 선언할 수 있습니다..
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 이미지 빌드
도커 이미지 구조 이전에도 봤지만 도커 이미지 구조는 위와 같습니다. 여기서 우리는 ubuntu이미지가 있고, nginx이미지는 ubuntu에 nginx 이미지 레이어를 하나 쌓아서 만들었다고 하고, web app이미지는 seb app source 이미지 레이어 하나를 더 추가해서 만들었다고 해 봅시다. 그리고 이 web app 도커 이미지를 활용하여 도커 컨테이너를 만듭니다. 이는 R/W 레이어고 도커 컨테이너가 삭제되면 이도 삭제된다는 특징이 있습니다. 실습 우리는 실습 전에 docker image inspect명령어를 통해 ub untu:latest이미지에 어떤 레이어가 쌓여있는지 확인해 보겠습니다. 보니까 sha256해시로 6개의 레이어가 쌓여있는 것을 보실 수 있습니다. Dockerfile 없이..
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 로그
STDOUT / STDERR 도커 컨테이너에서는 어플리케이션 단에서 stdout/stderr로 로그를 내보내는 것을 표준으로 해야합니다. 이렇게하게 되면 로깅 드라이버가 stdout/stderr로 내보내지는 로그를 쌓아가지고 처리할 수 있게 합니다. 도커같은 경우는 로깅 드라이버를 다양한 종류를 지원해주고 있습니다. 사용의 목적에 따라 로깅 드라이버를 선택하면 됩니다. 가장 기본적인 로깅 드라이버는 json-driver입니다. 로그 확인하기 바로 위 명령어를 기반으로 간단한 실습을 해보도록 하겠습니다. logs명령어로 nginx컨테이너를 하나 띄웠습니다. 그리고 docker logs명령어로 해당 컨테이너의 로그를 보실 수 있습니다. 또한 --tail 10을 지정해주어 마지막 10개의 로그만 확인할 수도 ..
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 볼륨
도커 레이어 아키텍쳐 docker build -t app .명령어로 도커 이미지를 빌드하게 되는데, 이 때 Dockerfile이라는 명세서를 기반으로 빌드하게 됩니다. 만약 컨테이너가 우분투 이미지를 베이스로 사용한다고 하면, 첫번쨰는 base Ubuntu Layer라는 레이어가 쌓일 것입니다. 그리고 두번째로 우분투 운영체제에서 사용되어 지는 package를 설치하는게 두번쨰 레이어로 올라갈 겁니다. ( apt-get ) 그 외에도 파이썬과 관련된 이미지여서 이와 관련된 레이어가 3번째로 올라갈 수 있으며, 그 이후에 소스코드를 복사한다고 하면 그 내용이 레이어4에 저장이 되고, 그리고 컨테이너의 엔트리포인트를 변경한다고 하면 이게 레이어5에 올라갈 수 있게 됩니다. 만약 레이어 4인 Source C..