개발팀과 운영팀의 관계를 알아야 도커의 필요성을 인지할 수 있다.컨테이너는 규모가 큰 회사가 주로 사용한다.개발과 운영은 서로 적대적이고 조화롭지 않다는게 평론.그래서 DevOps란 프로세스가 나온거고 자신의 편으로 만들고 조화를 이루어야 한다는 내용이 나오는 것.Do
컨테이너 기술을 지원하는 다양한 프로젝트 중에 하나컨테이너 기술은 이전에도 있었으나 도커로 인해 알려짐컨테이너 기술의 사실상 기술 표준이다.2014 가장 인기 있는 클라우드 오픈 소스 2위(리눅스 재단 발표)다양한 운영체제에서 사용 가능 ( 리눅스, 윈도우, MacOS
도커 레지스트리에는 사용자가 사용할 수 있도록 데이터베이스를 통해 Image를 제공해주고 있다.누구나 이미지를 만들어 푸시할 수 있으며 푸시된 이미지는 다른 사람들에게 공유 가능하다.공개된 퍼블릭 이미지들을 hub.docker.com 에서 확인할 수 있다.사용하고자 하
Docker Life Cycle Life Cycle Life Cycle CMD 이미지 다운로드와 삭제 컨테이너 생성 및 실행 실행중인 컨테이너 확인 모든 컨테이너 확인 컨테이너 중지 컨테이너 삭제
왼쪽: 이미지 A를 지운다 하더라도 이미지 B에서 레이어 A, B, C를 사용하고 있기 때문에 지워지지 않음오른쪽: 이미 존재하는 레이어 A, B는 새로 다운로드 받을 필요가 없음
Docker CMD 포트포워딩 컨테이너 내부 셸 실행 컨테이너 로그 확인 호스트 및 컨테이너 간 파일 복사 컨테이너 모두 삭제
Docker Environment Variable Docker에 MySQL 설치하기 환경 변수 사용해 데이터 전달하는 방법 환경 변수 사용해 MySQL 설치하기
https://hub.docker.com/ id : adminhttps://hub.docker.com/ 에 접속하여 내 레파지토리에 도커가 잘 등록됐는지 확인해본다.모든 이미지 삭제 후 다시 admin/echo_test 실행하여 잘 다운로드 돼 실행되
Docker Image Build 빌드할 어플리케이션 준비 도커 파일 생성 dockerfile 빌드 후 테스트
Docker는 Linux 커널을 조작하기 때문에 Linux 기반 Host OS 위에서 기동된다. 실습에서는 Ubuntu OS 22.04.2 LTS version 을 사용했다. 도커를 사용할 때에는 root 계정 말고 일반 계정을 사용하고 권한을 부여하자.Volume
웹 서버처럼 백그라운드에서 실행되는 컨테이너는 docker attach로 접근할 수 없다. 만약 내부 shell을 포함하고 있다면 exec 명령으로 터미널을 열어 접근할 수 있다.컨테이너 내 파일을 호스트로 복사할 때 docker cp 명령어 사용
유효한 도커파일은 반드시 FROM 구문으로 시작해야 한다.RUN CMD \- docker run 명령 시 적용할 command를 나열 \- cmd는 하나만 적용 가능하고,여러 개 입력 시 마지막 것으로 적용 컨테이너 동작 시 다른 명령으로 전환가능ENTRYPOINT
실행중인 컨테이너가 호스트 시스템의 메모리를 너무 많이 사용하지 않도록 하는 것이 중요하다. 리눅스 호스트에서 커널이 중요한 시스템 기능을 수행하기에, 충분한 메모리가 없음을 감지하면 OOME 즉, Out Of Memory Exception을 발생시켜 프로세스를 우선순
iptables란 프로토콜 상태 추적, 패킷 검사, 속도 제한, 필터링 정책 등을 리눅스에서 기본적으로 제공하는 기능이다. 주로 패킷 필터링 과 NAT 역할을 수행한다. Docker에서 외부 네트워크와 통신하는데 중요한 역할을 한다. Docker0가 여기에 등록되며 외
컨테이너의 격리 공간에는 Sand Box 가 있지만 여전히 Host OS의 커널을 공유한다. 그렇기에 Host System에서 컨테이너 프로세스들을 볼 수 있는 것이고 컨테이너들 또한 각자 OS를 가지고 있지 않아도 되는 것이다. CGroup ( Control Grou
컨테이너에서 실행되고 있는 프로세스 목록을 출력하는 명렁\-a: 모든 사용자의 프로세스를 출력합니다.\-u: 각 프로세스의 사용자(UID)를 표시합니다.\-s: 시그널을 표시합니다.\-v: 가상 메모리를 표시합니다.\-x: 자신을 실행시킨 셸이 없는 프로세스를 출력합니
Container Storage
Docker 는 CNM ( Container Network Model ) 개념을 사용한다. sandbox : 컨테이너의 격리 환경의 네트워크 구성endpoint : 네트워크 인터페이스network : 네트워크 인터페이스 그룹Sandbox에는 컨테이너 네트워크 스택 구성