도커엔진의 기본단위
: 이미지, 컨테이너
2.1.1 이미지
: 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용프로그램을 실행 하는데 필요한 모든 것을 포함하는 패키지
- 이름 구성: 저장소이름/이미지이름:태그 ex) zerome/ubuntu:14.04
2.1.2 컨테이너
: 도커 이미지를 독립된 공간에서 실행할 수 있게 해주는 기술
도커이미지와 컨테이너는 1:N 관계
2.2.1 실습) 컨테이너 생성
docker container run <image> <command>
-i -t : 컨테이너 내부로 진입하도록 attach 가능한 상태로 설정
-d : detach로 컨테이너를 백그라운드에서 실행하도록 설정
-p : 포트 포워딩
ex) 우분투 컨테이너 생성
docker run -i -t ubuntu:14.04
ex) webserver라는 이름의 컨테이너로 nginx 이미지 띄우기
- 서버 호스트의 80번 포트로 들어오는 요청은 모두 컨테이너의 80번 포트로 포워딩 된다.
docker container run -name webserver -d -p 80:80 nginx
도커 엔진에 존재하는 이미지 목록 확인
docker images
2.2.2 실습) 컨테이너 목록 확인
모든 컨테이너 목록 확인
docker ps -a
-a : 모든 컨테이너
실행중인 컨테이너 목록 확인
docker ps
컨테이너 연결
docker container attach <container-name>
2.2.3 실습) 컨테이너 삭제
컨테이너 종료
docker stop <container-name>
컨테이너 시작
docker start <container-name>
컨테이너 삭제
docker container rm <container-name>
-f : 강제 종료 및 삭제
2.2.4 실습) 컨테이너 외부 노출
2.2.5 컨테이너 애플리케이션 구축
- 한 컨테이너에 프로세스 하나만 실행하는것이 좋다
ex) 데이터베이스와 웹서버를 하나의 컨테이너에 설치할 수 있지만 , 데이터베이스와 웹서버는 각각의 컨테이너로 분리하는것을 권장한다
실습) 워드프레스 기반 블로그 서비스
2.2.6 도커 볼륨
- 도커 컨테이너: 쓰기 가능
- 도커 이미지: 읽기 가능
- 이미지에 mysql 실행 시 필요한 애플리케이션 파일이 있고, 컨테이너 계층에는 워드 프로세스에서 쓴 로그인 정보나 게시글 등 데이터가 저장됨 -> 단점: mysql 컨테이너를 삭제하면 컨테이너 계층에 있던 데이터베이스 정보도 삭제됨 -> 이를 방지하기 위한 방법: 볼륨!
2.2.7.1 도커 네트워크 구조
- 대표적인 네트워크 드라이버: 브리지, 호스트, 논, 컨테이너
- 서드파티 플러그인 솔루션: weave, flannel, openvswitch
브리지 네트워크: 컨테이너를 생성할 때 자동으로 연결되는 docker0 브리지를 활용하도록 설정
브리지 네트워크와 --net-alias
호스트 네트워크: 별도로 생성할 필요없이 기존의ㅏhost라는 이름의 네티워크를 사용
논 네트워크: 아무런 네트워크를 사용하지 않는 것
컨테이너 네트워크
MacVLAN 네트워크
2.2.8 컨테이너 로깅
2.2.8.1 json-file 로그 사용하기
2.2.8.2 syslog 로그
2.2.8.3 fluentd 로깅
2.2.8.4 아마존 클라우드워치 로그
2.2.9 컨테이너 자원 할당 제한
2.2.9.1 컨테이너 메모리 제한
2.2.9.2 컨테이너 CPU 제한
2.2.9.3 Block I/O 제한
2.2.9.4 스토리지 드라이버와 컨테이너 저장 공간 제한
'도커&쿠버네티스' 카테고리의 다른 글
[도커/쿠버네티스] 4장 도커 컴포즈 (0) | 2022.01.25 |
---|---|
[도커/쿠버네티스] 3장 도커 스웜 (0) | 2022.01.18 |
[도커/쿠버네티스] 2.5장 도커 데몬 (0) | 2022.01.10 |
[도커/쿠버네티스] 2.3~2.4장 도커 이미지, 도커 파일(Dockerfile) (0) | 2022.01.05 |
도커란? - 도커를 시작해야하는 이유 / MA MSA / Window환경 도커 설치 (0) | 2021.12.20 |
댓글