목록Container (34)
Connecting
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tIfBW/btqwTwG7wH3/fW24bkCwo7aHsnoKm43Nk1/img.jpg)
Docker 컨테이너 성능 벤치마크 지난 시간에는 한정된 자원을 사용하기 위한 노력들과 컨테이너의 정의와 사용하는 이유, Kubernetes가 등장한 이유에 대해서 살펴보았다. 이번 시간에는 실제 SBC에 Docker를 설치하여 물리 머신과 컨테이너 환경에서의 성능 차이를 알아보도록 한다. Docker 환경 성능 컨테이너가 일반 VM보다 이득이라는 점은 지난 시간에서 설명하였다. 실질적으로 컨테이너를 사용했을 때 물리머신과 성능 차이가 존재하는지, 존재한다면 얼마나 많은 차이가 나는지에 대해서 알아보도록 한다. 컨테이너는 OS 커널에서 동작하기 때문에 Linux 커널에 의존적인 관계를 가질 수 밖에수밖에 없는 구조를 가지고 있다. 띠라서 여러 Docker 환경을 구축하더라도 하나의 커널에서만 종속적인 관..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/brGzNM/btqu2bzffNS/a2Q7GQkTyGK2eJ8t21yE20/img.png)
2019년 현재 Docker는 빠질 수 없는 필수적인 구성 요소가 되었다. 기존의 가상화 환경과 다르게 프로세스 격리 방식으로 동작하는 Docker의 경우 경량화는 물론 다른 Virtualizatin와 비교했을 때 빠른 Deploy가 가능하다는 여러 장점을 기존 시간에서 상세하게 설명하였다. 이번시간에서는 실제 본 연구실에서 진행했던 Docker Swarm으로 시작하는 오케스트레이션이라는 주제로 지필하고자 한다. 사실 오케스트레이션이라는 용어와 사용은 오래전부터 사용되어 있었다. 오케스트레이션이 무엇인지 살펴보고 싶다면 본 블로그에 Docker Swarms 편을 살펴보는 것을 추천한다. 현재는 거의 업계 표준이나 다름없이 사용되는 오케스트레이션 도구는 구글에서 제작한 쿠버네티스라고 할 수 있다. 하지만 ..
Docker Postgresql 설치 및 셋팅하기 자세한 버전으로 수정되어 링크가 이동되었습니다. 본 포스팅을 찾아주셔서 감사합니다. 다음 포스팅으로 이동하셔서 확인하시길 바랍니다. https://judo0179.tistory.com/96 본 문서는 Docker를 사용하여 Postgresql을 설치하고 셋팅하는 방법을 설명하고 있습니다. Linux, Mac OS에서 사용할 것을 권장합니다. 다음 링크에서 공식 postgres Docker 이미지를 다운로드 받습니다.https://hub.docker.com/_/postgresdocker-compose.yml를 활용해서 데이터베이스를 셋팅하고자 하는 경우 다음 링크를 참조하세요https://judo0179.tistory.com/69?category=28195..
Docker Node Example Node Express를 활용한 간단한 Dockerfile를 만들어서 Docker 이미지를 만들어보도록 하겠습니다. 연구실은 Nexus를 통해서 Registry 구성이 완료되어 있으며, 관련 설정내용은 다음 링크에 자세히 설명되어 있으므로 참고하여 주시길 바랍니다. Nexus Docker Private Registry주의사항 본 문서는 Mac OS를 기준으로 작성되었습니다. Linux 사용시 sudo를 반드시 사용해야 하며 윈도우의 경우 사용 방법이 상의할 수 있습니다. Docker는 가급적 Linux에서 사용하는 것을 추천합니다. 기존 Docker 이미지 정리하기$ docker stop $(docker ps -a -q) $ docker rm $(docker ps -a..
Docker Private Registry지금까지 우리가 만든 Docker image는 Docker Hub에 등록하여 사용했습니다. 하지만 Docker hub는 반드시 public으로만 이미지를 push 할 수 있으며, 개인사용자는 하나의 이미지만 private으로 사용할 수 있습니다. 이러한 불편함을 해소하기 위해 개인 pirvate rgistry를 만들어보고 간단하게 이미지를 업로드하는 방법을 알아보도록 하겠습니다. Run a local registry다음 명령어를 통해서 간단하게 private registry를 만들 수 있습니다. $ docker run -d -p 5000:5000 --restart=always --name registry registry:2 본 명령어를 통해 개인 PC에 레지스트리..
Docker Tutorials and Labs지금까지 도커 공식 문서에 있는 내용을 살펴보면서 도커의 사용법과 도커의 동작 원리 등을 살펴보았습니다. 지금부터는 도커에서 공식적으로 제공하고 있는 Docker Tutorials and Labs 를 참조하면서 실제 실행하면서 사용하는 방법을 알아보도록 하겠습니다. 다음 깃허브 주소를 클론하세요. https://github.com/docker/labs.git위의 저장소에서는 도커를 사용하기 위한 다양한 예제와 설명들이 첨부되어 있습니다. 이 문서또한 위의 설명을 기본으로 작성 되었음을 알려드립니다. $ docker stop $(docker ps -a -q) $ docker rm $(docker ps -a -q) $ docker rmi $(docker image..
Dockerfiles 작성 우수 사례본 문서는 효율적인 이미지를 구현하기 위해 권장되는 모범 사례와 방법을 다루는 문서입니다. 도커의 dockerfile는 주어진 이미지를 만드는데 필요한 모든 명령을 순서대로 포함하고 있는 텍스트 파일로서, 각 명령을 읽어서 이미지를 자동으로 빌드합니다. 도커의 이미지는 각 dockerfile 명령어를 나타내는 읽기전용 레이어로 구성되며, 레이어는 이전 레이어들이 겹쳐진 스택입니다. FROM ubuntu:15.04 COPY . /app RUN make /app CMD python /app/app.pyFROM ubuntu:15.04 우분투 15.04 도커 이미지에서 레이어를 생성합니다. COPY 도커 클라이언트의 현재 디렉토리를 생성합니다. RUN 응용프로그램을 빌드합니다..
Docker Overview지난 시간까지 우리는 도커를 사용하여 기본적인 사용법과 문법을 익혔습니다. 지금부터는 도커의 동작원리와 내부 기술이 어떻게 구성되어 있는지 차근차근 알아가보도록 하겠습니다. 도커는 응용 프로그램을 개발, 배포, 실행하기 위한 개방형 플랫폼입니다. 도커를 사용하면 인프라에서 응용 프로그램을 분리하여 신속하게 소프트웨어를 제공할 수 있습니다. 도커를 사용하면 응용 프로그램을 관리하는 것과 같은 방법으로 인프라를 관리할 수 있으며, 코드를 신속하게 개발하고 테스트하는 방법을 도커를 통해 실제 운영환경과 개발환경의 차이를 크게 줄일 수 있습니다. 도커는 Go언어를 기반으로 개발되었습니다. Docker 플랫폼도커는 컨테이너라고 하는 환경에서 응용 프로그램을 패키지화 하고, 실행할 수 있..
Get Started, Part 5: StacksPrerequisitesDocker 1.13 버전 이상이어야 합니다.파트 3과 파트 4의 실습이 선행되어 있어야 합니다. 파트 2에서는 컨테이너의 생성방법에 대해서 알아보았습니다. friendlyhello가 레지스트리에 푸시되어 있는지 확인해야 합니다. 파트 3에서 진행했던 docker-compose.yml 파일을 준비해야 합니다. 파트 4에서 진행했던 docker-machine 을 실행하고 준비하고 swarm을 설정합니다. Introduction파트 4장에서는 Docker를 실행하는 시스템 클러스터인 swarm을 설정하고 여러 가상환경에서 동시에 응용프로그램을 배포하는 방법을 학습했습니다. 이번장에서는 분산 응용 프로그램 계층 구조의 최상위 계층에 속해있..
Get Started, Part 4: SwarmsDocker Swarm 을 알기전에 알아야 하는 것들Docker Swarm을 이해하기 전에 서버 오케스트레이션(server orchestration) 이란 단어가 무엇인지 이해해야 합니다. 만약 당신이 회사에서 인프라를 관리하고 있는데 각각의 서버의 역할을 분할하고 적용했다고 생각합니다. 연구실을 예를들어 웹서버 1, 가상화 서버 2, GitLab 3, DB 4 등 각각의 역할을 두고 서버를 운영 한다고 가정합니다.처음에 봤을때는 역할별로 정리가 잘 되어있다고 생각할 수 있지만 특정 서비스에 작업이 몰리거나, 역할이 모호한 어플리케이션과 같은 경우에는 어디에 설치해야 하는지 애매한 경우가 생길 수 있습니다. 또한 다른 서버로 변경하고 싶어도 기존 서버의 ..