본문 바로가기

전체 글88

[linix] 리눅스 디렉토리 구조 한 번에 정리 리눅스는 모든 것이 /(루트 디렉토리) 아래에 있다.각 디렉토리는 역할이 거의 고정되어 있으니, 서버 운영에 활용할 수 있다./ (Root Directory)리눅스 파일 시스템의 최상위모든 디렉토리의 시작점/├── bin├── boot├── dev├── etc...시스템 핵심 영역/bin (기본 시스템 명령어)ls, cp, mv, rm 같은 기본 명령어 바이너리부팅 후 최소 환경에서도 사용 가능✔ 모든 사용자 공용 명령어✔ 장애 상황에서도 살아 있어야 하는 명령들/sbin (시스템 관리자용 명령어)mount, fsck, reboot 같은 관리자 명령어✔ 서버 운영/복구 관련✔ 일반 유저 PATH에는 없는 경우 많음/boot (부팅 관련 파일)커널 이미지부트로더 설정✔ 건드리면 서버 부팅 불능✔ 커널 업데.. 2026. 1. 23.
[linux] 서버 상태 & 운영 필수 명령어 df (디스크 사용량 확인)현재 마운트된 디스크들의 전체 용량, 사용량, 남은 공간 출력서버 장애(용량 부족) 원인 파악 시 가장 먼저 확인dfdf -h # 사람이 읽기 쉬운 단위(GB, MB)du (폴더별 실제 사용 용량 확인)특정 디렉토리들이 실제로 차지하는 디스크 용량 계산디스크 부족 시 “어디가 문제인지” 추적할 때 사용du -hdu -sh *du -sh /var/log/*free (메모리 사용량 확인)서버 RAM 사용량 요약 출력메모리 부족(OOM), 서버 지연 원인 분석 시 사용freefree -h # 사람이 읽기 쉬운 단위uname (시스템 정보 확인)커널, OS, 아키텍처 정보 출력서버 환경 파악, 장애 리포트, 호환성 확인용unameuname -a .. 2026. 1. 22.
[linux] 리눅스 필수 명령어 25개 1. 위치 이동 & 구조 파악ls (디렉토리 구조 파악의 시작점)현재 위치의 파일과 폴더 목록 출력서버 점검, 로그 위치 탐색, 배포 디렉토리 구조 확인 시 필수ls # 기본 목록ls -l # 권한, 소유자, 크기, 시간까지 상세 출력ls -al # 숨김 파일 포함cd (작업 위치 변경)리눅스에서 모든 명령은 “현재 위치” 기준으로 동작로그 디렉토리 이동, 서비스 폴더 진입, 배포 경로 접근cd /var/logcd ..cd ~pwd (현재 위치 절대경로 확인)내가 지금 정확히 어디 있는지”를 확인할 때 사용root, 운영 서버 작업 시 실수 방지용pwd2. 파일 / 디렉토리 생성·삭제·이동mkdir (디렉토리 구조 생성)서버 프로젝트, 로그, 백업.. 2026. 1. 20.
[docker] Docker 컨테이너의 실체: 리눅스 네임스페이스와 cgroups 많은 개발자들이 Docker를 “가상머신보다 가볍다”라고 설명하지만,도대체 왜 가볍고 어떻게 동작하는지는 잘 모르는 경우가 많습니다.사실 컨테이너의 핵심은 특별한 비밀 기술이 아니라, 리눅스 커널이 오래전부터 제공하던 기능을 잘 조합한 것입니다.이번 글에서는 네임스페이스(namespace), cgroups(control groups)를 중심으로 컨테이너의 내부 구조를 살펴보고,Docker 외의 실행 도구도 함께 정리하겠습니다. 1. 컨테이너는 작은 가상 컴퓨터일까?컨테이너를 처음 접하면 “내 PC 안에 또 다른 작은 컴퓨터가 생기는구나”라고 생각하기 쉽습니다.하지만 엄밀히 말하면, 컨테이너는 새로운 운영체제를 부팅하지 않습니다.컨테이너는 리눅스 커널을 그대로 공유하면서프로세스들을 격리해 마치 독립된 환경.. 2025. 9. 26.
[docker] Docker 네트워크 이해하기: 포트 매핑이 필요한 이유 Docker를 처음 배우면 가장 헷갈리는 부분 중 하나가 바로 포트 매핑입니다.분명히 컨테이너 안에서 서버를 실행했는데, 브라우저에서 접속이 되지 않는 경험을 해본 적 있을 겁니다.그 이유는 간단합니다. 컨테이너 안의 포트와 내 컴퓨터의 포트는 다르기 때문입니다.이번 글에서는 Docker 네트워크 구조와 포트 매핑이 왜 필요한지,그리고 -p 8080:80 같은 명령어가 실제로 어떤 흐름을 만드는지 정리해보겠습니다. 1. 컨테이너는 독립된 네트워크 공간컨테이너는 가상 머신과 달리 무겁지 않지만, 기본적으로 호스트와 격리된 네트워크 공간을 가집니다.내 컴퓨터(호스트)에는 여러 개의 포트(80, 443, 8080 등)가 열려 있고, 이를 통해 외부와 통신합니다.컨테이너도 자체적으로 포트를 열 수 있지만, 호스.. 2025. 9. 25.
[docker] 컨테이너 다루기 필수 명령어 모음 Docker는 이미지를 기반으로 컨테이너를 실행하고, 컨테이너 안에서 애플리케이션을 구동합니다.하지만 실제 개발·운영 환경에서는 단순히 실행만 하는 것이 아니라,상태 확인·로그 조회·접속·종료·삭제 같은 다양한 조작이 필요합니다.이번 글에서는 docker run, docker ps, docker logs, docker exec, docker stop, docker rm 등필수 명령어와 함께 자주 쓰이는 옵션을 정리했습니다. 1. 컨테이너 실행: docker run가장 기본적인 명령어입니다. 이미지를 컨테이너로 띄울 때 사용합니다.docker run -d -p 8080:80 nginx-d : 백그라운드(detached) 모드 실행 → 터미널을 점유하지 않음-p : 로컬 포트와 컨테이너 포트를 연결 (호스트.. 2025. 9. 24.
[docker] 내 애플리케이션을 Docker 이미지로 만들기 Docker의 가장 큰 매력은 내가 만든 프로그램을 “이미지”라는 형태로 묶어 두고,어느 컴퓨터에서든 똑같이 실행할 수 있다는 점입니다.단순히 명령어 몇 개를 아는 것보다, 전체 과정을 경험해 보는 것이 중요합니다.이번 글에서는 Dockerfile 작성 → 이미지 빌드 → 실행 → 포트 연결까지의 전 과정을 실제 예시와 함께 정리합니다. 1. 애플리케이션 준비하기먼저 컨테이너로 감쌀 애플리케이션이 필요합니다.여기서는 Python Flask로 만든 간단한 웹 서버를 예시로 사용합니다. [app.py]from flask import Flaskapp = Flask(__name__)@app.route("/")def home(): return "Hello, Docker World!"if __name__ =.. 2025. 9. 22.
[docker] Dockerfile 제대로 이해하기: 실무에서 자주 쓰는 명령어 정리 Dockerfile은 애플리케이션을 실행하기 위한 환경을 코드로 기록한 문서입니다.운영체제, 패키지 설치, 코드 복사, 실행 방법 등을 모두 순서대로 적어두면, 언제 어디서든 동일한 실행 환경을 재현할 수 있습니다.이번 글에서는 실무에서 자주 쓰이는 핵심 명령어 6가지를 정리하겠습니다. 1. FROM – 베이스 이미지 지정하기Dockerfile은 항상 FROM으로 시작합니다.어떤 환경에서 애플리케이션을 실행할지를 정하는 단계입니다.FROM node:20-slim위 예시는 Debian 기반의 최소 Node.js 20 환경을 불러옵니다.slim, alpine 같은 태그는 불필요한 패키지를 줄여 용량을 최소화합니다. Python과 Go 예시:FROM python:3.11-slimFROM golang:1.22.. 2025. 9. 19.
[docker] Docker의 장점과 단점 “어떤 환경에서도 동일하게 실행된다”는 강력한 장점 덕분에 많은 팀이 이미 Docker를 활용하고 있습니다.하지만 Docker는 만능 열쇠가 아닙니다. 장점이 뚜렷한 만큼 단점도 분명히 존재하죠.이번 글에서는 Docker의 장점과 단점을 균형 있게 살펴보고, 언제 쓰면 좋은지, 언제 굳이 쓰지 않아도 되는지 정리해 보겠습니다. 1. Docker의 장점(1) 배포가 쉬워진다Docker를 사용하면 애플리케이션과 실행 환경을 하나의 이미지로 묶을 수 있습니다.서버에 배포할 때는 이미지를 내려받아 실행하기만 하면 됩니다.docker build -t myapp .docker run -p 8080:8080 myapp (2) 협업이 편리하다개발자가 여러 명일 때 가장 흔한 문제는 환경 차이입니다.Dockerfil.. 2025. 9. 18.