Linux 7

docker commit vs Dockerfile: 컨테이너 수정 내용을 이미지로 남겨도 될까?

실행 중인 Docker 컨테이너에서 소스와 패키지를 수정한 뒤 이미지로 남길 수는 있습니다. 하지만 docker commit과 Dockerfile은 목적이 다릅니다. 빠른 진단용 스냅샷과 다시 만들 수 있는 배포 이미지 중 무엇을 선택해야 하는지, volume 누락과 비밀정보 위험까지 비교합니다.핵심 요약일회성 조사·복구 지점은 docker commit이 유용할 수 있습니다. 팀 배포와 반복 빌드는 변경 과정을 Dockerfile·의존성 파일·소스 관리에 기록하세요. commit에는 mounted volume 데이터가 포함되지 않습니다.목차핵심 차이commit이 저장하는 범위재현성과 보안크기·성능·비용상황별 추천과 전환FAQ1. docker commit vs Dockerfile 핵심 차이기준docker ..

정보/Comparison 2026.09.10

docker save·load 사용법: 인터넷 없는 서버로 이미지 옮기기

인터넷이 차단된 서버에 Docker 이미지를 옮길 때는 레지스트리 대신 docker save와 docker load를 사용할 수 있습니다. 개발 PC에서 이미지 아카이브와 체크섬을 만들고, 대상 서버에서 무결성·태그·플랫폼을 확인해 실행하는 절차를 설명합니다.핵심 요약docker save는 이미지 레이어와 지정한 태그를 아카이브하고 docker load는 이미지와 태그를 복원합니다. 컨테이너 파일시스템을 내보내는 docker export와 혼동하지 마세요.목차목표와 준비이미지 고정과 저장파일 전송과 무결성 검증대상 서버에서 불러오기실행 검증오류 해결과 FAQ1. 목표와 준비 사항출발지와 대상 서버 모두에 Docker Engine 또는 호환되는 Docker CLI·daemon 환경이 필요합니다. 대상 CP..

정보/Tutorial 2026.09.10

externally-managed-environment 오류 해결: --break-system-packages 전에 할 일

error: externally-managed-environment는 pip 자체가 고장 났다는 뜻이 아닙니다. 운영체제가 관리하는 Python에 pip가 직접 패키지를 덮어쓰지 못하도록 막은 상태입니다. Ubuntu·Debian 계열에서 이 오류를 만난 개발자가 프로젝트 라이브러리, CLI 도구, 시스템 패키지를 안전하게 나눠 설치하도록 해결 순서를 정리합니다.핵심 요약프로젝트 라이브러리는 venv, 독립 실행형 Python CLI는 pipx, 운영체제 구성요소는 apt를 먼저 검토하세요. --break-system-packages는 보호 장치를 해제하는 옵션이지 일반 해결책이 아닙니다.목차증상과 원인현재 Python 확인프로젝트 패키지 해결CLI·시스템 패키지 해결추가 점검FAQ1. externall..

Python logging 파일 자동 분할과 한글 로그 설정

Python 로그 파일 크기 제한이 없으면 장시간 실행한 앱의 로그가 계속 커질 수 있습니다. 단일 프로세스 스크립트를 운영하는 개발자를 위해 파일 회전과 보관 개수를 함께 설정합니다. 외부 패키지 없이 한글 로그와 예외 기록까지 확인할 수 있습니다.핵심 요약RotatingFileHandler에서 maxBytes와 backupCount를 모두 양수로 지정합니다. 회전은 백업이 아니라 오래된 기록을 순환 교체하는 보관 정책입니다.목차목표와 준비Python 로그 파일 크기 제한 코드설정값이 결정하는 것실행과 검증오류 해결과 적용 범위FAQ1. 목표와 준비목표는 app.log와 최대 3개의 회전 파일을 만드는 것입니다. Python 3 환경과 쓰기 가능한 실습 폴더를 준비하세요. 추가 pip 설치는 없습니다...

정보/Tutorial 2026.09.09

Docker healthcheck란? running과 healthy, 자동 재시작의 차이

Docker healthcheck는 컨테이너 안에서 검사 명령을 실행해 서비스 상태를 따로 판단하는 기능입니다. 컨테이너는 실행 중인데 접속이 안 되거나 DB 준비 전에 앱이 시작되는 상황을 이해하려는 개발자에게 필요합니다. running, healthy, 재시작 정책이 각각 무엇을 의미하는지 구분해 보겠습니다.이 글의 핵심running: 컨테이너의 실행 상태healthy: 정의한 검사 통과restart policy: 종료 후 재시작 조건목차healthcheck가 필요한 이유검사 명령과 상태 변화Compose의 준비 완료 대기자동 재시작과의 차이상태 확인과 점검FAQ1. Docker healthcheck가 필요한 이유프로세스가 살아 있어도 서비스가 요청을 처리하지 못할 수 있습니다. 서버가 초기화 중이거..

Docker volume vs bind mount: DB 데이터와 소스 코드는 어디에 둘까?

Docker volume vs bind mount 선택은 데이터를 누가 관리하고 어디서 수정하는지에 따라 달라집니다. DB 데이터를 보관하거나 로컬 소스 코드를 컨테이너에 연결하려는 개발자를 위한 비교입니다. 영속성, 개발 편의, 이동성의 차이와 Compose 설정을 보고 자신의 작업에 맞는 방식을 고를 수 있습니다.이 글의 핵심컨테이너가 관리하는 데이터는 named volume을, 호스트에서 직접 편집할 파일은 bind mount를 먼저 검토하세요. 둘 다 백업은 별도로 필요합니다.목차핵심 차이 비교Compose 설정 예시초기 데이터와 권한성능과 비용상황별 추천1. Docker volume vs bind mount 핵심 차이기준Named volumeBind mount연결 대상Docker가 관리하는 저장..

정보/Comparison 2026.09.08

.gitignore 적용 안 될 때: 추적 상태와 패턴 확인 순서

.gitignore 적용 안 됨 문제는 파일이 이미 Git의 추적 대상인지부터 확인하면 빠르게 좁힐 수 있습니다. 무시 목록에 추가했는데도 변경 파일에 계속 나타나는 개발자를 위한 글입니다. 추적 상태와 패턴을 구분한 뒤 로컬 파일을 유지하면서 필요한 경로만 제외하는 방법을 설명합니다.이 글의 핵심이미 추적 중인 파일은 .gitignore에 추가해도 자동으로 제외되지 않습니다. 추적되지 않은 파일이라면 경로와 예외 패턴을 확인하세요.목차증상과 추적 상태 확인이미 추적 중인 파일 제외패턴이 맞지 않을 때해결 여부 검증FAQ1. .gitignore 적용 안 됨: 추적 상태부터 확인저장소 최상위 폴더에서 아래 명령을 실행합니다. build.log는 확인할 실제 파일 경로로 바꾸세요. 경로에 공백이 있으면 큰따..