Docker 컨테이너
- 프로세스 격리와 환경 독립성
- 컨테이너는 소프트웨어를 다른 환경과 격리하여 재사용성과 자원 효율성을 극대화합니다.
- 각 컨테이너는 독립된 PID, 네트워크, 파일 시스템 네임스페이스를 가지며, 다른 컨테이너나 호스트로부터 완전히 분리됩니다.
- Docker 기본 명령어
- docker run: 컨테이너 생성 및 실행.
- docker stop: 실행 중인 컨테이너 중지.
- docker rm: 컨테이너 삭제.
- docker ps: 실행 중인 컨테이너 목록 표시(-a 옵션으로 모든 컨테이너 표시).
- docker logs: 컨테이너의 로그 확인.
- 컨테이너의 상태 관리
- 컨테이너 상태: created, running, paused, restarting, exited, dead.
- --restart 정책: 실패 시 컨테이너 자동 재시작 설정 가능(always, on-failure).
- 데이터 관리 및 볼륨
- Docker 볼륨을 사용하여 데이터의 영속성 확보.
- 컨테이너의 데이터와 호스트 파일 시스템을 연결하여 데이터 공유 가능.
- 환경변수 주입
- --env 플래그를 통해 컨테이너 실행 시 환경변수 주입 가능.
- 환경변수는 구성 파일 없이 소프트웨어 동작을 조정할 수 있는 유연한 방식 제공.
- 컨테이너 ID 및 이름 관리
- Docker는 컨테이너를 고유한 ID로 식별하며, 사람이 읽기 쉬운 이름도 자동 생성.
- 스크립트 자동화를 위해 컨테이너 ID 또는 이름 활용 가능.
- 컨테이너에서 소프트웨어 실행
- 상호작용 방식: --interactive와 --tty를 사용하여 터미널 연결.
- 데몬 방식: --detach를 사용해 백그라운드 실행.
- Docker 네트워킹
- 기본 브리지 네트워크 외에도 사용자 정의 네트워크 생성 가능.
- 컨테이너 간 통신 설정은 링크(--link) 또는 사용자 정의 네트워크를 활용.
- 읽기 전용 파일 시스템
- 컨테이너의 무결성 보장을 위해 --read-only 옵션으로 파일 시스템을 읽기 전용으로 설정.
- 특정 경로에 대한 쓰기 권한은 볼륨이나 tmpfs를 통해 허용.
- 내구성 있는 컨테이너 구축
- 컨테이너의 실패에 대응하기 위해 재시작 정책 활용.
- 복구 가능한 디자인과 초기화 시스템(supervisord, tini 등) 활용.
- 컨테이너 정리
- 필요 없는 컨테이너는 docker rm 명령어로 삭제.
- --rm 옵션을 사용하면 컨테이너 종료 후 자동으로 삭제.
- 애플리케이션 배포
- 다양한 애플리케이션 배포 시 Docker Hub 이미지를 활용하여 간편한 설치 및 실행 가능.
- 환경 독립성을 유지하며 구성 요소 간 연결 및 모니터링 시스템 구축 가능.
'Docker' 카테고리의 다른 글
볼륨(Volume) (0) | 2024.12.04 |
---|---|
도커 인 액션 4장 (0) | 2024.12.04 |
도커 인 액션 1장 (0) | 2024.12.04 |
도커 인 액션 3장 (0) | 2024.12.04 |
ext4 (Extended Filesystem 4) (1) | 2024.12.04 |