- 컨테이너의 장점
- 민첩성 : 개발자가 어플리케이션을 빌드하고 더 빠른 배포
- 이식성 : os플랫폼 간 및 클라우드 간 이식 가능 / 개발 시스템에서 프로덕션 환경까지 일관된 형식을 사용
- 신속한 확장성 : 같은 인프라에 더 많은 컨테이너 지원 가능 / 신속한 스케일링 지원
- VM : 하이퍼바이저(가상머신 모니터)
-호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼
-CPU,메모리,스토리지 등의 리소스를 에뮬레이션 -> 한대의 서버에 독립된 여러 머신 환경을 구성 가능
① VM과 컨테이너 비교
- VM : 저수준 하드웨어 장치(CPU, Disk, Network)를 가상화
- 장점 : 같은 서버에 다양한 운영체제를 실행 / 물리머신 대비 동일한 자원을 더 효율적으로 사용 / 물리 머신 대비 빠른 서버 프로비저닝
- 단점 : OS이미지, 라이브러리, 어플리케이션 등을 반복적으로 포함
- 컨테이너 : 애플리케이션 구동에 필요한 모든 종속성을 포함한 소프트웨어 패키지를 운영체제 위에서 가상화
- 장점 : 컨테이너를 어느 환경에나 배포 가능
-OS를 부팅하거나 라이브러리를 로드할 필요가 없음
-가상환경을 더 효율적이고 경량으로 생성 가능
-수초 이내의 빠른 시작 시간
-하나의 호스트에 더 많은 어플리케이션 실행 가능
-OS패치 업데이트 등 유지 관리와 관련된 오버헤드 감소
*docker 설치 안되어있다면 설치 후 시작
$cat /etc/os-release
-> host os 종류 알아보기 위한 명령어
$docker pull fedora
-> fedora이미지를 최신 버전으로 다운받는 명령어
*만약 다음과 같은 오류가 생긴다면 ?
$ sudo systemctl status docker
-> 위 명령어 통해 docker가 내려가있는지 확인, 결과가 stop라고 뜬다면 다시 실행
$sudo systemctl start docker
$sudo systemctl enable docker
-> 위와 같은 명령어를 쳤는데도 작동되지 않는다면
$sudo /etc/init.d/docker start
오류 발생 했을 때
- docker 관련 명령어를 사용하는 도커 데몬은 Unix 소켓을 통해 실행, 위의 에러에서도 확인할 수 있는 var/run/docker.sock 파일임
- 해당 소켓 파일은 root 사용자의 소유 권한으로 기본 설정되어 있고, 이에 sudo 권한으로 실행되어야 함.
- 이를 일반 사용자가 접근할 수 있도록 docker 라는 그룹을 만들고 여기에 일반 사용자를 추가하여 해결함
-> 해당 문제의 해결 방식은 기존 sudo 권한으로 실행해야 하는 docker소켓을 일반 사용자가 사용할 수 있는 권한을 부여하는 과정
4) Alpine 리눅스 기본 이미지 만들기