도커란 ?
- AWS 설명 을 참고해도 좋고
- 우리의 친구가 설명해준 내용도 좋다 !
- 도커(Docker)는 컨테이너 기반의 가상화 플랫폼입니다. 소프트웨어를 신속하게 개발, 배포 및 실행할 수 있도록 설계되었습니다. 이러한 기능은 다음과 같은 장점을 제공합니다:
- 표준화된 환경: 도커는 애플리케이션을 패키지화하고 실행하는 데 사용되는 표준화된 환경을 제공합니다. 개발 환경과 프로덕션 환경 간의 일관성을 유지할 수 있으며, 다른 시스템에서도 동일한 방식으로 작동합니다.
- 경량한 가상화: 도커는 가상화를 위해 호스트 운영 체제의 리소스를 공유하므로 가상 머신보다 더 경량합니다. 각 컨테이너는 애플리케이션 실행에 필요한 모든 라이브러리, 종속성 및 설정을 포함하며, 호스트 시스템과 격리됩니다.
- 효율적인 자원 관리: 도커는 호스트 시스템의 자원을 효율적으로 관리하며, 여러 개의 컨테이너를 동시에 실행하여 자원을 최대한 활용할 수 있습니다.
- 스케일링 및 배포의 용이성: 도커는 컨테이너 단위로 애플리케이션을 관리하기 때문에 애플리케이션을 쉽게 스케일링하고 배포할 수 있습니다. 필요에 따라 새로운 컨테이너를 추가하거나 제거하여 작업량을 조정할 수 있습니다.
- 환경 일치성: 개발 환경에서 프로덕션 환경으로 애플리케이션을 배포할 때 발생할 수 있는 문제를 최소화합니다. 도커 컨테이너는 모든 종속성과 환경 설정을 포함하므로 배포 프로세스가 일관성 있게 유지됩니다.
- 개발 및 테스트 단순화: 도커는 애플리케이션을 패키지화하고 동일한 환경에서 실행할 수 있으므로 개발 및 테스트 프로세스가 단순화됩니다. 개발자는 로컬 환경에서 애플리케이션을 실행하고 테스트할 수 있으며, 동일한 이미지를 사용하여 프로덕션 환경에서 애플리케이션을 실행할 수 있습니다.
- 자주 쓰이는 명령어
- 도커 공식 문서 를 참고하는게 제일 좋고
- 우리의 친구가 설명해준 내용도 정리해두는게 좋을 듯 싶다.
- 도커를 사용할 때 자주 사용되는 명령어들을 아래에 정리했습니다:
- 도커 이미지 관련 명령어:
- docker pull <이미지명>: 도커 허브 또는 레지스트리에서 이미지를 가져옵니다.
- docker build -t <이미지명> <Dockerfile 경로>: Dockerfile을 사용하여 도커 이미지를 빌드합니다.
- docker images: 현재 시스템에 있는 도커 이미지 목록을 표시합니다.
- 도커 컨테이너 관련 명령어:
- docker run <옵션> <이미지명>: 도커 이미지를 기반으로 컨테이너를 실행합니다.
- docker ps: 실행 중인 도커 컨테이너 목록을 표시합니다.
- docker ps -a: 모든 도커 컨테이너(실행 중인 것과 종료된 것 포함) 목록을 표시합니다.
- docker start <컨테이너 ID 또는 이름>: 중지된 컨테이너를 시작합니다.
- docker stop <컨테이너 ID 또는 이름>: 실행 중인 컨테이너를 중지합니다.
- docker rm <컨테이너 ID 또는 이름>: 컨테이너를 삭제합니다.
- 도커 네트워크 관련 명령어:
- docker network ls: 도커 네트워크 목록을 표시합니다.
- docker network inspect <네트워크 이름>: 특정 도커 네트워크의 세부 정보를 표시합니다.
- 도커 볼륨 관련 명령어:
- docker volume ls: 도커 볼륨 목록을 표시합니다.
- docker volume create <볼륨 이름>: 새로운 도커 볼륨을 생성합니다.
- docker volume inspect <볼륨 이름>: 특정 도커 볼륨의 세부 정보를 표시합니다.
- 도커 로그 관련 명령어:
- docker logs <컨테이너 ID 또는 이름>: 컨테이너의 로그를 표시합니다.
- 컨테이너 실행
- 간단하게 Docker Desktop을 이용해서 이미지를 run을 통해 실행하는 방법도 있고
- docker run -d --name myproject -p 8080:8080 myproject 이렇게 터미널 상에서 실행시키는 방법도 있다. ****
- -e 를 통해 실행 시 전달할 환경 변수를 추가할 수 있다. (즉 도커 파일에 설정한 환경 변수에 값을 전달할 수 있다)
- 이렇게 실행되면 만들었던 도커파일에 따라 쭉 실행되고 서버가 올라가게 된다 !
Sonarqube에 프로젝트를 연동시켜보자
- Sonarqube란 ?
- 정적 코드 분석 도구
- 즉, 프로젝트의 Bug, Code Smell, Security Vulnerability 등을 찾아주는 도구다
- 직접 소나큐브를 다운 받을 수도 있지만, 간편하게 도커에서 이미지를 pull 받을 수 있다.
docker run -d --name sonarqube -p 9000:9000 sonarqube
- 이미지를 받은 후 컨테이너를 실행하고, http://localhost:9090 으로 접속해보면
- 로그인 창이 나온다.
- 여기를 참고해서 로그인 및 토큰 발급 + 프로젝트 연동 설정을 한 후 gradle에 설정한 task를 실행하게 되면
- 이런 식으로 코드 분석이 실행되고 결과를 소나큐브로 확인할 수 있다.
- 추가로, SonarCloud를 사용한 경우 (회사 프로젝트가 그렇다)
- sonar cloud에 설정된 값에 따라 토큰, 조직정보 등등 여타 설정 값이 더 필요하게 된다.
- 이러한 설정 값들은 gradle 혹은 도커파일에 명시할 수 있고 (도커 실행 시점에만 실행되게끔 하려면 토큰을 도커파일에 넣어서 할 수 있음)
- 당연히 cloud에서 분석을 실행할 것이니 url도 로컬이 아닌 클라우드 url로 변경해야 한다.
- 참고
'Gyunpang' 카테고리의 다른 글
6. 여러대의 인스턴스에 무중단 배포하기 (0) | 2024.04.06 |
---|---|
5. Nginx + React 무중단 배포하기 (0) | 2024.03.26 |
4. Docker + Github Action + nginx로 CI/CD 파이프라인 구축하기 (1) | 2024.03.24 |
3. 도메인 연결 및 nginx 설정하기 (0) | 2024.03.24 |
1. Spring Cloud Gateway를 통해 Simple Gateway를 만들어보자 (0) | 2024.03.24 |