본문 바로가기

Docker6

도커 컨테이너의 로그 조회 및 저장 도커의 로깅 도커 컨테이너 내부에서 발생하는 로그는 다양한 형태로 조회하고 저장할 수 있습니다. StdIn, StdOut, StdErr 등의 표준 입출력을 Json File로 저장할 수 있으며 다른 서버에 로그 파일을 저장하기도 합니다. 또한 파일로 저장하지 않고 데이터베이스인 ElasticSearch 또는 MongoDB와 같은 데이터베이스에 저장할 수도 있습니다. 도커에서는 로깅 드라이버를 사용하여 로그를 남기도록 설정하고, 이 로깅 드라이버를 교체함으로써 다양한 로그 저장기법을 지원합니다. docker logs 도커에서 기본으로 사용하는 json-file 로깅 드라이버와 journald 로깅 드라이버를 사용한다면 도커의 명령어중 docker logs 명령어를 사용할 수 있습니다. docker logs.. 2020. 9. 13.
도커 네트워크의 구조 도커 컨테이너는 호스트 내부에 격리된 어플리케이션 환경을 생성합니다. 각각의 어플리케이션은 네트워크를통해 내/외부와 통신합니다. 도커 엔진은 이 컨테이너들이 호스트의 네트워크를 사용할 수 있도록 컨테이너를 생성할 때 내부IP를 할당합니다. 내부 IP는 도커 내부에서만 사용하는 IP이므로 도커 엔진은 컨테이너가 외부와 통신하기 위해 호스트에 컨테이너를 위한 가상 네트워크 인터페이스를 생성합니다. veth, eth0 도커 엔진이 호스트에 생성한 가상 네트워크 인터페이스는 실제로 외부와 통신할 수 있으며, veth로 시작하는 이름을 가지고 있습니다. 컨테이너별로 생성된 veth 인터페이스는 컨테이너 내부 eth0 인터페이스와 연결됩니다. 컨테이너에 eth0 인터페이스가 생성되는 것은 아래와 같이 확인할 수 있.. 2020. 9. 6.
도커 볼륨의 종류 도커 볼륨을 왜 사용해야 할까? 도커 컨테이너는 컨테이너마다 기본적으로 독자적인 저장소를 가지고 있습니다. 하나의 이미지로 여러 컨테이너를 만든다면 해당 컨테이너마다 독립적인 볼륨이 할당되고, 컨테이너가 삭제되면 해당 볼륨 또한 삭제됩니다. 이러한 구조에서 오는 이슈가 하나 있는데, 컨테이너 내부에 저장되는 데이터는 컨테이너가 삭제되었을 경우 같이 삭제된다는 점입니다. 예를 들어 제가 도커 컨테이너 내부에 제 블로그 글을 txt 파일 형식으로 저장해두었다고 가정해보겠습니다. 열심히 만든 제 글이 이 컨테이너에 존재하고 있습니다. 컨테이너 내부 볼륨에 제가 작성한 파일이 저장되어 있습니다. 컨테이너가 삭제되는 순간 제 파일도 함께 삭제될 것입니다. 이처럼 컨테이너 내부에 중요한 데이터를 두는 것은 그다지 .. 2020. 9. 6.
도커와 가상머신, 그리고 OS 개요 도커와 가상 머신이란? 도커 컨테이너와 가상 머신은 애플리케이션에 독립적인 리소스를 할당하고, 격리된 프로세스를 실행할 수 있다는 장점이 있어서 널리 쓰이는 기술입니다. 가상머신과 컨테이너 모두 어떤 서버 환경에서 구동하더라도 독립적인 리소스로 구동되기 때문에 서버에 대한 모든 종속성을 제거할 수 있다는 장점이 있습니다. 한번 구성해놓은 환경으로 다른 서버에서 구동시키더라도 이동한 서버에서 다시 환경 세팅을 해주지 않아도 된다는 편리함을 가지고 있습니다. 가상머신 가상 머신은 Host OS위에 하이퍼바이저를 이용하여 물리적인 장치를 가상화합니다. 가상화된 머신에는 그에 맞는 OS를 설치해주어야 하며 이때문에 아주 작은 애플리케이션을 가상화하더라도 OS로 인해 큰 용량을 가지고 있는 무거운 가상 머신.. 2020. 8. 29.
Docker를 소개합니다 들어가며해당 글은 실전 Docker 사용법보다는, Docker가 무엇인지 소개하는 것을 목표로 하고 있습니다. 자세한 Docker 명령어와 사용법을 알고 싶다면 Docker Doc를 참고해주세요! Docker 개념 잡기Docker란 무엇일까요? 개발자라면 꼭 알아야 한다고 하는 이야기도 들리고 도커가 뭔지 어떻게 감을 잡을지 모르겠다고 하는 도커 입문자에게는 Docker의 개념을 잡기가 참 어렵습니다. 도커에 대해 검색하고 공부할 때 컨테이너, 패키징, 이미지 등등 낯선 단어의 등장에 머리부터 아파지기 쉽습니다. 이 글은 Docker가 뭔지 감을 못 잡고 계신 분들, "그래서 Docker 왜 써야 하는데?"라는 의문을 가지고 계신 분들을 대상으로 하고 있습니다. 저는 새로운 개념을 공부할 때는 우선 공식.. 2020. 5. 23.
[Java] jConsole로 원격에서 실행중인 JVM 모니터링하기 서버 환경 Naver Cloud Platform(nCloud) Compact Server ubuntu 16 docker (openJDK-8 베이스 이미지로 만든 프로젝트가 올라갑니다) 프로젝트 Spring boot 2.2 maven JDK 8 모니터링 환경 Windows10 PRO Oracle JDK 8 jConsole 도커 이미지 작성 도커 이미지를 만들 때 참조하는 DockerFile을 다음과 같이 작성했습니다. FROM ascdc/jdk8 ADD delfood.jar delfood.jar ENV JAVA_OPTS="" ENTRYPOINT ["java",\ "-Dcom.sun.management.jmxremote.port=[접근할 포트]",\ "-Dcom.sun.management.jmxremote... 2020. 2. 14.