도커(Docker)란?
도커(Docker)는 컨테이너 기술을 기반으로 애플리케이션과 그 실행 환경을 패키징하고 배포하는 플랫폼입니다.
컨테이너는 애플리케이션 실행에 필요한 라이브러리, 코드, 설정 파일 등을 모두 포함하여 일관된 환경에서 실행되도록 보장합니다. 따라서 개발, 테스트, 배포 환경에서 환경 불일치 문제를 최소화할 수 있습니다.
쉽게 이해하자면
도커(Docker)는 애플리케이션을 "도시락 통"에 담아 어디서든 똑같이 작동하게 만들어주는 도구입니다.
도커(Docker) 사용 목적
- 환경 일관성 보장: 개발, 테스트, 운영 환경의 불일치를 최소화하여 개발 환경에서는 되는데 운영에서는 안 되는 문제를 줄입니다.
- 마이크로서비스 아키텍처 지원: 각 서비스가 독립된 컨테이너로 실행되므로 마이크로서비스 구조에 적합합니다.
- 지속적 통합 및 배포(CI/CD): 컨테이너 기반 배포 프로세스를 자동화하여 DevOps를 효과적으로 지원합니다.
- 다양한 OS 지원: 호스트 OS와 무관하게 리눅스, 윈도우 환경에서 동일하게 애플리케이션을 실행할 수 있습니다.
- 이식성: 이미지 파일로 패키징하여 어디서든 동일하게 실행 가능하기 때문에 클라우드나 로컬 환경 간 이동이 쉽습니다.
도커(Docker) 장점과 단점
[장점]
- 경량화: 컨테이너는 가상 머신보다 리소스 사용이 적고 더 빠르게 실행됩니다.
- 빠른 시작 속도: 컨테이너는 OS 부팅이 필요 없으므로 빠른 실행이 가능합니다.
- 확장성: 부하에 따라 컨테이너 수를 유연하게 늘리거나 줄일 수 있습니다.
- 플랫폼 독립성: "한 번 빌드, 어디서든 실행"이 가능하므로 환경에 구애받지 않습니다.
- 개발 환경 표준화: 개발팀 간의 환경 불일치 문제를 해결하여 협업이 원활해집니다.
[단점]
- 복잡한 네트워크 관리: 여러 컨테이너 간 통신 설정은 복잡할 수 있습니다.
- 보안 취약점: 커널 공유로 인해 가상 머신보다 보안 이슈가 발생할 가능성이 있습니다.
- 데이터 영속성 관리: 컨테이너는 일시적인 특성이 있으므로 데이터가 유지되도록 별도의 볼륨 설정이 필요합니다.
- 운영 관리 복잡성: 대규모 컨테이너 환경에서는 오케스트레이션 도구 사용이 필수적입니다.
- 윈도우 지원 한계: 윈도우 환경에서 성능이나 호환성이 제한되는 경우가 있습니다.
도커(Docker) 사용 시 주의할 점
1) 컨테이너 보안 관리
- 공식 이미지를 사용하는 것이 좋습니다.
- 불필요한 네트워크 포트를 노출하지 않습니다.
- 컨테이너 내부에서 root 권한을 사용하지 않도록 설정합니다.
2) 데이터 영속성 관리
- 컨테이너는 일시적이므로 중요한 데이터는 반드시 따로 저장해 둬야 합니다.
- 데이터 손실 방지를 위해 적절한 백업에 신경써야합니다.
3) 이미지 관리
- 사용하지 않는 이미지를 삭제하여 디스크 공간을 절약합니다.
- 이미지 태그 관리를 철저히 합니다.
4) 네트워크 성능
- 복잡한 네트워크 설정은 성능에 영향을 줄 수 있으므로 단순화합니다.
5) 리소스 관리
- 컨테이너 수가 많아질 경우 CPU, 메모리를 적절히 제한합니다.
도커(Docker) 설치(Windows 11)
Docker: Accelerated Container Application Development
Docker is a platform designed to help developers build, share, and run container applications. We handle the tedious setup, so you can focus on the code.
www.docker.com
도커(Docker)를 설치 하기위해 위의 사이트에서 Docker Desktop 실행 파일을 다운받습니다.
다운받은 Docker Desktop Installer.exe 실행파일을 실행합니다.
설치를 완료했다면 다운받은 Docker Desktop을 실행합니다.
도커(Docker)가 잘 설치됐는지 확인을 위해 명령프롬프트(cmd)를 실행합니다.
docker -v를 입력하여 설치가 되었는지 확인합니다.
도커(Docker)로 Apache Web Server 구축하기
httpd 이미지 다운로드 : docker pull httpd
이미지 목록 확인 : docker images
[httpd 이미지를 다운]
httpd 이미지 컨테이너 실행 : docker run httpd
httpd 이미지 컨테이너 중지 : docker stop httpd
실행중인 컨테이너 확인 : docker ps
[도커 컨테이너 실행]
localhost:8080로 접속하여 잘 작동되는지 확인