[Docker] Docker Compose
DevOps/Docker2025. 5. 16. 12:50[Docker] Docker Compose

이 글은 인프런의 지식 공유자 박재성님과 데브위키님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.Docker ComposeDocker Copmose는여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 도와주는 도구이다.도커 컴포즈는 도커 데스크탑 설치 시 기본으로 설치된다.한 번의 명령어로 여러 개의 컨테이너를 한번에 실행하거나 종료할 수 있다.로컬 개발 환경에서 활용하기 편리합니다. Docker Compose를 사용하는 이유여러 개의 컨테이너를 관리하는 데 용이여러 개의 컨테이너로 이루어진 복잡한 애플리케이션을 한 번에 관리할 수 있게 해준다. 여러 컨테이너를 하나의 환경에서 실행하고 관리하는 데 도움이 된다. 복잡한 명령어로 실행시키던 걸 간소화..

[Docker] 도커 네트워크
DevOps/Docker2025. 5. 16. 12:46[Docker] 도커 네트워크

이 글은 인프런의 개발자를 위한 쉬운도커(데브위키) 강의를 수강하고 개인적으로 정리하는 글임을 알립니다.도커 네트워크가상 네트워크Docker는 컨테이너 간의 통신을 관리하기 위해 가상 네트워크를 사용하며, 기본적으로 브리지 네트워크(bridge network)를 통해 각 컨테이너에 IP 주소를 할당하고 통신할 수 있도록 한다.Docker는 가상 네트워크(브리지)를 통해 각 컨테이너에 고유한 IP를 할당하고, 컨테이너 간의 통신을 관리한다.브리지 네트워크를 통해 컨테이너 간에 직접적인 통신이 가능하며, 외부 네트워크와 통신할 때는 NAT를 사용해 공인 IP와 사설 IP를 변환한다.Docker 네트워크를 사용하면, 각 컨테이너가 독립적인 네트워크 환경에서 동작하면서도 필요한 경우 외부 네트워크와 통신할 수 ..

[Docker] 컨테이너 리소스 사용량 제한
DevOps/Docker2025. 5. 15. 20:23[Docker] 컨테이너 리소스 사용량 제한

이 글은 인프런의 개발자를 위한 쉬운도커(데브위키) 강의를 수강하고 개인적으로 정리하는 글임을 알립니다.기업에서는 수평적 확장보다 수직적 확장이 더 효율적인 경우가 많다.성능이 좋은 고사양 서버를 구매하고 이를 도커 컨테이너나 가상화 기술을 통해 논리적으로 여러 대의 서버로 분할하면 되기 때문이다.이는 실제로 물리적 서버를 여러 대 구매하고 관리하는 수평적 확장의 복잡성과 비용을 줄이면서도 유사한 효과를 얻을 수 있는 전략이다. 이때 컨테이너에 리소스 사용량 제한을 두지 않으면 실행되는 컴퓨터의 최대 리소스를 사용하게 된다.이는 하나의 성능이 좋은 컴퓨터를 논리적으로 여러 대의 컴퓨터로 운영하는 도커의 장점을 무색하게 만들 수 있다. 리소스 제한을 설정하지 않은 하나의 컨테이너가 CPU나 메모리를 과도하..

[Docker] Dockerfile
DevOps/Docker2025. 5. 14. 19:27[Docker] Dockerfile

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.DockerfileDockerfile은 Docker 이미지를 생성하기 위한 스크립트이다.Dockerfile이란 텍스트 파일로, Docker 엔진에게 이미지를 어떻게 빌드할지 지시하는 명령어들을 포함한다. 특징일반적으로 프로젝트 루트 디렉토리에 Dockerfile이라는 이름으로 저장여러 명령어(인스트럭션)로 구성각 명령어는 이미지에 새로운 레이어를 추가레이어 방식으로 이미지를 구성하여 캐싱과 재사용성 향상 FROMFROM은 베이스 이미지를 생성하는 역할을 한다.Docker 컨테이너를 특정 초기 이미지를 기반으로 추가적인 세팅을 할 수 있다. 여기서 얘기한 ‘특정 초기 이미지’가 곧 베이스 이미지이다. 누군가는 JDK..

[Docker] 볼륨 (Volume)
DevOps/Docker2025. 5. 14. 15:42[Docker] 볼륨 (Volume)

이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.도커 볼륨의 개념기존 컨테이너를 새로운 컨테이너로 교체하면, 기존 컨테이너 내부에 있던 데이터도 같이 삭제된다.만약 이 컨테이너가 MySQL을 실행시키는 컨테이너였다면 MySQL에 저장된 데이터도 같이 삭제 돼버린다. 따라서 컨테이너 내부에 저장된 데이터가 삭제되면 안 되는 경우에는 볼륨(Volume)이라는 개념을 활용해야 한다. 도커의 볼륨(Volume)이란 도커 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법이다.볼륨(Volume)은 컨테이너 자체의 저장 공간을 사용하지 않고, 호스트 자체의 저장 공간을 공유해서 사용하는 형태이다. 볼륨 종류바인드 마운트(Bind Mount)바인드 마운트는 호스트 시스템의..

[Docker] 자주 사용하는 명령어 정리
DevOps/Docker2025. 5. 13. 19:53[Docker] 자주 사용하는 명령어 정리

이미지 관련 명령어다운로드이미지 다운로드# docker pull 이미지명docker pull nginx # docker pull nginx:latest와 동일하게 작동 특정 버전 이미지 다운로드# docker pull 이미지명:태그명docker pull nginx:stable-perl 조회이미지 조회docker image ls 모든 이미지 조회중간 이미지(intermediate images)와 태그가 없는 이미지(dangling images)도 포함docker image ls -a 삭제사용하고 있지 않은 이미지 삭제docker image rm [이미지 ID 또는 이미지명] 이미지 강제 삭제docker image rm -f [이미지 ID 또는 이미지명] 전체 이미지 삭제# 컨테이너에서 사용하고 있지 않은..

DevOps/Docker2024. 10. 13. 05:31[Docker] 애플리케이션 종료시 Compose 자동시작

환경AWS EC2 (ubuntu) Docker Compose 로 여러개의 도커 컨테이너가 묶여있고, EC2 인스턴스로 배포된 상황에서 여러가지 이슈들로 인스턴스가 재부팅 되거나 애플리케이션이 종료될 수 있다.이때 재부팅되거나 배포한 애플리케이션이 종료되었을 때 자동으로 애플리케이션이 시작되게끔 할 수 있다.먼저 Docker Compose 애플리케이션 서비스 파일을 생성해야 한다.sudo vi /etc/systemd/system/docker-compose-app.service 이후 아래의 서비스 파일을 입력한다.[Unit]Description=Docker Compose Application ServiceAfter=docker.serviceRequires=docker.service[Service]Restar..

[Docker + SpringBoot] 스프링부트 로그 파일 남기기
DevOps/Docker2024. 10. 11. 02:06[Docker + SpringBoot] 스프링부트 로그 파일 남기기

개발환경SpringBoot v3.3.3AWS EC2 (ubuntu)RDSDocker ComposeGithubActions 로그를 파일로 저장하기(환경 분리 포함)스프링부트에서 local 환경과 prod 환경을 분리하여 로그를 남기는 방법은 아래의 글에서 참고하였다.https://blog.pium.life/server-logging/ Logback을 이용해 운영 환경 별 로그 남기기이 글은 우테코 피움팀 크루 '그레이'가 작성했습니다. 로깅이란 ? 우리가 처음 개발을 할 때 System.out.println(), cout blog.pium.life 이 글은 local 환경에서는 콘솔에서 로그를 확인할 수 있고 prod환경에선 info 로그와 error 로그 파일을 분리할 수 있는 설명이 담겨있다. 먼저 a..

image