-
도커란? +(도커 이미지란?)MSA & 쿠버네티스(Kubernetes) - k8s 2022. 6. 29. 00:01반응형
도커란?
컨테이너 기반의 오픈소스 가상화 플랫폼입니다.
컨테이너와 가상 머신의 가장 큰 차이는 OS를 공유하느냐 하지 않느냐의 차이입니다.
컨테이너는 OS를 공유하기 때문에 가상 머신보다 효율적입니다.
도커의 컨테이너 나는 지금 만약 컨테이너, 가상화에 대해 잘 모르겠다고 하신다면 생활코딩의 Docker 영상을 한번 보고 오시면 좋을 것 같습니다
생활코딩 Container 설명 : 4분영상
https://www.youtube.com/watch?v=Ps8HDIAyPD0&list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf
컨테이너 가상화 기술을 사용하는 이유를 간단하게 설명하자면 각 프로그램들(Sever, DB 등)을 격리된 OS 환경에서 실행하고 싶으며 자원을 효율적으로 사용하기 위해서 가상화 -> 컨테이너 환경으로 사용하게 됩니다.
가상화와 컨테이너 예시 도커의 등장 배경
2013년 리눅스 컨테이너의 미래라는 제목으로 세션을 발표하면서 세상에 알려졌습니다.
즉, Container 기술은 Linux에서 이전에도 사용되고 있던 기술입니다.
하지만 설정이 매우 복잡했고 사용하기 어려웠기 때문에 많은 사람들이 사용하지 않았습니다.
하지만 Docker가 출시되고 단 몇 초 만에 새로운 운영체제를 생성하고 서비스를 배포할 수 있게 되면서 실질적으로 사용할 수 있는 편리성의 위치까지 기술의 눈높이가 낮아진 것입니다.
그래서 컨테이너를 왜 사용하는데?
만약 Gitlab이라는 도구를 우분투에 설치하려면 깃랩 공식 문서에서는 다음과 같이 하라고 안내하고 있습니다.
sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates tzdata perl sudo apt-get install -y postfix curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ee
하지만 CentOS를 사용한다면 명령어가 조금 달라집니다.
sudo yum install -y curl policycoreutils-python openssh-server perl # Enable OpenSSH server daemon if not enabled: sudo systemctl status sshd sudo systemctl enable sshd sudo systemctl start sshd # Check if opening the firewall is needed with: sudo systemctl status firewalld sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo systemctl reload firewalld sudo yum install postfix sudo systemctl enable postfix sudo systemctl start postfix curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ee
하지만 컨테이너 도구인 도커가 설치되어 있다면 어느 환경이든 상관없이 다음 명령어를 사용하여 깃랩을 실행할 수 있습니다.
$ docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
간단해 보이진 않지만 운영체제별로 존재하는 복잡한 설치 과정을 겪지 않는 점이 포인트입니다.
도커 이미지란?
도커에 대해 조금 검색해보면 도커 이미지라는 이야기가 계속 나오는 걸 볼 수 있습니다.
도커는 서비스 환경 부분을 이미지화하여 배포한 뒤 가급적 변경하지 않고 사용합니다.
도커에서 서비스 운영에 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일된 실행파일을 묶는 형태를 도커 이미지라고 합니다.
즉, 특정 프로세스를 실행하기 위한 모든 파일과 설정값(환경)을 지닌 것입니다.
컨테이너는 도커 이미지를 바탕으로 실제로 프로그램을 실행시키는 인스턴스입니다.
https://sdesigner.tistory.com/106 요약
도커는 컨테이너 기반의 가상화 환경을 제공한다.
컨테이너를 사용하게 되면 확장성을 쉽게 가져갈 수 있다.
이때 이미지를 통해 파일과 설정 환경을 가지고 있으며 이미지를 실행함으로써 이미지를 기반으로 컨테이너가 생성되고 동작한다.
출처
[Docker] Docker의 개요
Docker란 무엇일까? 개발자라면 도커를 사용해보진 않았더라도 한 번쯤은 들어봤을 것이다. 많은 개발자들이 이미 도커를 사용하고 있고, 심지어 채용 우대사항에서도 Docker라는 이름을 심심치 않
ooeunz.tistory.com
https://www.44bits.io/ko/post/why-should-i-use-docker-container
왜 굳이 도커(컨테이너)를 써야 하나요? - 컨테이너를 사용해야 하는 이유
컨테이너는 서버 애플리케이션을 배포하고 서버를 운영하는 표준적인 기술이 되어가고 있습니다. 하지만 처음 사용해본다면 그 장점이 잘 와닿지 않을 수도 있습니다. 왜 굳이 도커 컨테이너를
www.44bits.io
'MSA & 쿠버네티스(Kubernetes) - k8s' 카테고리의 다른 글
Docker로 Apache 웹서버 띄우기 (0) 2022.08.02 Docker 설치해보기 + Docker에 Jenkins 설치(윈도우10 Home Edition) (1) 2022.07.22 NGINX란? (0) 2022.06.25 Service Discovery란? (0) 2022.03.24 로드 밸런서(Load Balancer)란? (0) 2022.03.22