Dev, DevOps, App, Game, Life, Sports 등등 다양한 관심거리를 가지고 만들어가는 잡식 모음 블로그 입니다. 가볍지만 알아두면 좋은 지식들을 공유하고 싶습니다.
ROS2 Nav2 params.yaml 핵심 설정 및 파라미터 튜닝 가이드
ROS2 Nav2(Navigation2) 스택 실행 시 로봇의 주행 특성, 장애물 회피 범위, 위치 추정 정확도, 정밀 도착 오차 등을 제어하는 핵심 파라미터 설정 파일인 **nav2_params.yaml**의 주요 노드별 설정법과 실무 튜닝 가이드입니다. 1. 커스텀 nav2_params.yaml 작성 및 적용 방법 Nav2 런치 실행 시 기본 파라미터 대신 직접 작성한 커스텀 파라미터 파일을 전달하여 실행합니다. ros2 launch nav2_bringup bringup_launch.py \ use_sim_time:=true \ map:=$HOME/my_map.yaml \ params_file:=$HOME/my_nav2_params.yaml 2. AMCL (위치 추정) 파라미터 설정 amcl 노드는 파티클 필터(Particle Filter)를 이용하여 맵 상에서 로봇의 실시간 위치를 추정합니다. ...
ROS2 SLAM 맵 생성 및 Nav2 자율주행 실기 가이드 (slam_toolbox & Nav2)
특정 튜토리얼용 로봇(터틀봇 등) 패키지에 의존하지 않고, 일반적인 커스텀 ROS2 모바일 로봇(AMR/AGV) 하드웨어 환경에서 **slam_toolbox**를 이용한 2D 점유 격자 지도(Occupancy Grid Map) 작성부터 nav2_bringup 표준 명령어를 이용한 자율주행 구동까지 전체 실기 절차를 가이드합니다. 1. 개요 및 실기 로봇 사전 준비 로봇 하드웨어 필수 조건 (ROS2 인터페이스) 실제 로봇에서 SLAM 및 Nav2를 구동하려면 로봇 드라이버 및 센서 노드가 아래 ROS2 토픽과 TF(Transform)를 제공해야 합니다. 센서 데이터 (/scan): 2D LiDAR 노드가 sensor_msgs/msg/LaserScan 타입 토픽 발행 오도메트리 (/odom): 바퀴 인코더/IMU 기반 이동량 nav_msgs/msg/Odometry 발행 조종 명령 (/cmd_vel): 로봇 모터 드라이버가 geometry_msgs/msg/Twist 속도 명령 수신 TF 좌표계 (Robot State Publisher): odom ➔ base_footprint ➔ base_link ➔ laser_frame (LiDAR 위치) 변환 제공 필수 패키지 설치 (Humble 버전 기준) 개발자 PC(Remote PC) 또는 로봇의 메인 컴퓨팅 장치(SBC/Industrial PC)에 표준 패키지를 설치합니다. ...
자주 쓰는 ROS2 CLI 명령어 정리
ROS2(Humble / Iron / Jazzy 등) 기반 로봇 애플리케이션 개발, 디버깅 및 시뮬레이션 시 자주 쓰이는 필수 터미널 CLI 명령어 모음집입니다. 1. 워크스페이스 빌드 및 환경 설정 (Colcon & Environment) 빌드 및 의존성 관리 # 의존성 패키지 자동 설치 rosdep update rosdep install --from-paths src --ignore-src -y # 워크스페이스 전체 빌드 (소스 변경 사항 즉시 반영을 위한 심링크 빌드 권장) colcon build --symlink-install # 특정 패키지만 선택 지정 빌드 colcon build --packages-select <package_name> --symlink-install # 빌드 결과 환경변수 소싱 source install/setup.bash 2. 노드 관리 (ros2 node) 실행 중인 ROS2 노드(Node)의 상태를 점검합니다. ...
GitHub Actions Docker 빌드 최적화 및 GHCR 배포 가이드
GitHub Actions를 사용하여 컨테이너 이미지를 빌드하고 **GHCR(GitHub Container Registry)**에 자동 배포할 때, Buildx와 **GitHub Actions 전용 빌드 캐시(type=gha)**를 적용하여 CI/CD 시간을 크게 단축하는 워크플로우 가이드입니다. 1. 주요 특징 및 이점 GHCR 활용: 별도의 Docker Hub 계정이나 외부 레지스트리 비번 설정 없이 GITHUB_TOKEN 인증만으로 안전하게 컨테이너 레지스트리에 푸시. type=gha 캐시: 빌드 레이어 캐시를 GitHub Actions 백엔드에 저장하여 동일한 의존성 재빌드 시간을 극적으로 줄임 (최대 80%+ 속도 향상). Multi-platform 지원: QEMU를 연동하여 linux/amd64와 linux/arm64 이미지를 단일 작업에서 동시 생성. 2. GitHub Actions 워크플로우 작성 .github/workflows/docker-build.yml 경로에 아래 내용을 작성합니다. ...
Kubernetes Ingress Nginx 구축 및 Cert-Manager SSL 자동 발급 가이드
쿠버네티스 클러스터 내부에서 실행되는 웹 애플리케이션을 외부에 HTTPS 보안 연결로 노출하기 위해 Ingress Nginx Controller와 Cert-Manager(Let’s Encrypt 자동 갱신)를 구축하는 실무 가이드입니다. 1. 아키텍처 흐름 [ [ [ 클 N C C 라 g l e 이 i u r 언 n s t 트 x t - │ ▼ │ ▼ e M ( I r a B H n H I n r T g T P a o T r T g w P e P S e s S s e r e s ( r : r ( P v ) P C o i C o o r c l ] r n t e u t t s r 8 ] t 4 o 0 e 4 l ) ─ r 3 l ─ I ) e > s r s [ u ] e P r ─ o 를 ─ d ( s 통 T 해 L ] S L e T t e ' r s m i E n n a c t r i y o p n t / 서 버 S 와 e c 통 r 신 e 하 t 여 ) S S L 인 증 서 를 자 동 으 로 발 급 및 K 8 s S e c r e t 으 로 저 장 . 2. Nginx Ingress Controller 설치 Helm을 사용하여 Nginx Ingress Controller를 설치합니다. ...
Ollama + Open-WebUI로 로컬 프라이빗 AI 챗봇 구축 가이드
최근 로컬 환경에서 오픈소스 대형 언어 모델(LLM)을 실행할 수 있는 Ollama와 ChatGPT 스타일의 웹 인터페이스를 제공하는 Open-WebUI를 조합하여 기업 내부나 로컬PC에 프라이빗 AI 챗봇 환경을 구축하는 사례가 늘고 있습니다. 이 가이드에서는 Docker Compose를 활용하여 GPU 가속이 지원되는 프라이빗 AI 챗봇 시스템을 손쉽게 구축하는 방법을 설명합니다. 1. 아키텍처 개요 Ollama: Llama 3.1, Gemma 2, Mistral, Qwen 2.5 등 오픈소스 LLM 모델을 로컬에서 효율적으로 실행하고 REST API를 제공하는 백엔드 엔진. Open-WebUI: Ollama REST API와 연동하여 웹 브라우저에서 대화, 모델 변경, 문서 기반 RAG(Retrieval-Augmented Generation), 사용자 관리 등을 지원하는 웹 프론트엔드. [ 웹 브 라 우 저 ( 사 용 자 ) ] ─ ─ ( H T T P 3 0 0 0 ) ─ ─ > [ O p e n - W e b U I ] ─ ─ ( R E S T 1 1 4 3 4 ) ─ ─ > [ O l l a m a 엔 진 ( N V I D I A G P U ) ] 2. 사전 준비사항 Docker & Docker Compose 설치 완료 NVIDIA GPU 드라이버 및 NVIDIA Container Toolkit 설치 완료 (GPU 사용 시) GPU가 없더라도 CPU 모드로 실행 가능합니다. 3. Docker Compose 구성 docker-compose.yml 파일을 작성하여 Ollama와 Open-WebUI 서비스를 구성합니다. ...
ROS2 DDS 통신 최적화 및 멀티 로봇 트러블슈팅 가이드
ROS2(Robot Operating System 2) 기반의 로봇 소프트웨어 개발 시 데이터 유실(Packet Loss), 지연(Latency), 멀티 로봇 노드 간 미탐색(Discovery) 문제가 발생할 때 DDS(Data Distribution Service) 미들웨어를 최적화하고 네트워크 환경을 튜닝하는 실무 지침서입니다. 1. ROS2 DDS 미들웨어 선택 가이드 ROS2는 기본 DDS로 FastDDS 또는 CycloneDDS를 주로 사용합니다. CycloneDDS: 대용량 센서 데이터(LiDAR, RGB-D 카메라) 전송 안정성이 뛰어나며, 안정적인 유니캐스트/멀티캐스트 지원. FastDDS: eProsima의 기본 미들웨어로, 기능이 풍부하고 디버깅 도구가 다양함. CycloneDDS 변경 및 패키지 설치 sudo apt update sudo apt install ros-humble-rmw-cyclonedds-cpp # RMW(ROS Middleware Implementation) 환경 변수 설정 export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp 2. 리눅스 커널 소켓 버퍼 튜닝 (패킷 드랍 방지) LiDAR 점군(PointCloud2) 데이터나 고해상도 카메라 이미지를 발행/구독할 때 UDP 소켓 수신 버퍼가 작으면 패킷 손실이 일어납니다. ...
리눅스 디스크 용량 부족(100%) 해결 및 원인 정리 가이드
리눅스 서버 관리 중 디스크 용량이 100%(No space left on device)에 도달하여 서비스가 중단되었을 때, 원인을 신속하게 진단하고 디스크 공간을 확보하는 체계적인 가이드입니다. 1. 1단계: 디스크 사용량 및 Inode 상태 확인 가장 먼저 물리적 용량 부족인지, 아니면 파일 개수 초과(Inode 부족)인지 확인해야 합니다. 전체 디스크 용량 점검 (df -h) df -h 특정 파티션(예: / 또는 /var)의 Use%가 100%에 달했는지 확인합니다. Inode 사용량 점검 (df -i) df -i 용량이 남아있어도 소형 파일이 너무 많으면 Inode 사용율(IUse%)이 100%가 되어 파일 생성이 불가능해집니다. 2. 2단계: 대용량 파일 및 디렉토리 위치 탐색 어느 디렉토리에서 디스크를 과도하게 사용하고 있는지 추적합니다. ...
리눅스 자주 쓰는 Bash 커맨드 명령어 정리
리눅스(Linux) 터미널 및 Bash 환경에서 자주 사용되는 필수 명령어와 옵션, 실무 활용 예시를 카테고리별로 정리한 문서입니다. 1. 파일 및 디렉토리 관리 디렉토리 이동 및 위치 확인 pwd (Print Working Directory): 현재 위치한 디렉토리의 절대 경로 출력 pwd cd (Change Directory): 디렉토리 이동 cd /var/log # 특정 경로로 이동 cd ~ # 홈 디렉토리로 이동 cd .. # 상위 디렉토리로 이동 cd - # 이전 작업 디렉토리로 이동 파일 및 디렉토리 목록 조회 ls (List): 파일 및 디렉토리 목록 출력 ls -l # 상세 정보(권한, 소유자, 크기, 수정일 등) 포함 출력 ls -a # 숨김 파일(.)을 포함한 모든 파일 출력 ls -lh # 파일 크기를 사람이 읽기 쉬운 단위(KB, MB, GB)로 출력 ls -lt # 수정 시간순(최신순) 정렬 출력 디렉토리 및 파일 생성 / 삭제 / 복사 / 이동 mkdir (Make Directory): 디렉토리 생성 mkdir my_dir mkdir -p path/to/deep/dir # 하위 디렉토리까지 한 번에 생성 touch: 빈 파일 생성 또는 기존 파일의 수정 시간 업데이트 touch test.txt cp (Copy): 파일 및 디렉토리 복사 cp file1.txt file2.txt # 파일 복사 cp -r dir1 dir2 # 디렉토리 전체 복사 (재귀적) mv (Move): 파일/디렉토리 이동 또는 이름 변경 mv old_name.txt new_name.txt # 이름 변경 mv file.txt /path/to/target/ # 이동 rm (Remove): 파일 및 디렉토리 삭제 rm file.txt # 파일 삭제 rm -r dir_name # 디렉토리 및 하위 내용 삭제 rm -rf dir_name # 경고 없이 강제 삭제 (주의!) 탐색 및 용량 확인 find: 지정한 조건으로 파일 탐색 find . -name "*.log" # 현재 디렉토리에서 .log 파일 탐색 find /var/log -type f -mtime -7 # 최근 7일 이내 수정된 일반 파일 탐색 find . -type f -size +100M # 100MB 이상 크기의 파일 탐색 df (Disk Free): 전체 디스크 공간 사용량 확인 df -h # 사람이 읽기 쉬운 형식(GB, MB 등)으로 디스크 용량 확인 du (Disk Usage): 디렉토리별 용량 확인 du -sh * # 현재 디렉토리 하위 항목들의 용량 요약 출력 du -sh /var/log # 특정 디렉토리의 전체 용량 출력 2. 파일 내용 조회 및 편집 파일 내용 읽기 cat (Concatenate): 파일 내용 전체 출력 cat filename.txt cat -n filename.txt # 줄 번호와 함께 출력 less: 대용량 파일 내용을 페이지 단위로 조회 (q로 종료, /keyword로 검색) less /var/log/syslog head: 파일의 상단 일부 출력 head -n 20 filename.txt # 상단 20줄 출력 tail: 파일의 하단 일부 출력 (로그 모니터링에 매우 유용) tail -n 50 filename.txt # 하단 50줄 출력 tail -f /var/log/syslog # 실시간으로 추기되는 로그 모니터링 3. 텍스트 검색 및 데이터 처리 텍스트 검색 grep (Global Regular Expression Print): 패턴 검색 grep "ERROR" app.log # app.log에서 ERROR 문자열 포함 라인 검색 grep -i "error" app.log # 대소문자 구분 없이 검색 grep -rn "ERROR" ./src # 하위 디렉토리까지 재귀 검색(-r) 및 줄 번호 표시(-n) grep -v "INFO" app.log # INFO가 포함되지 않은 라인만 출력 (반전) 리다이렉션 & 파이프라인 | (Pipe): 앞 명령어의 표준 출력을 뒤 명령어의 표준 입력으로 전달 ps aux | grep python > & >> (Redirection): 파일에 결과 저장/추가 echo "Hello World" > output.txt # 덮어쓰기 (Overwriting) echo "New Line" >> output.txt # 이어쓰기 (Appending) 고급 텍스트 처리 awk: 필드 단위 데이터 추출 및 텍스트 처리 ls -l | awk '{print $5, $9}' # 파일 크기($5)와 파일명($9)만 출력 sed: 스트림 에디터 (문자열 치환 등) sed 's/foo/bar/g' input.txt # foo를 bar로 치환하여 출력 sed -i 's/foo/bar/g' input.txt # 파일 내용을 직접 치환하여 수정 wc (Word Count): 줄, 단어, 바이트 수 카운트 wc -l filename.txt # 전체 줄 수 출력 sort & uniq: 정렬 및 중복 제거 sort data.txt | uniq -c # 정렬 후 각 라인별 등장 횟수 카운트 4. 프로세스 및 시스템 모니터링 프로세스 확인 및 관리 ps (Process Status): 실행 중인 프로세스 조회 ps aux # 시스템 전체 프로세스 상세 목록 조회 ps -ef | grep java # 특정 프로세스(java) 검색 top / htop: 실시간 시스템 자원(CPU, 메모리) 및 프로세스 상태 모니터링 top # 기본 리눅스 성능 모니터링툴 htop # 컬러 UI 지원 향상된 모니터링툴 (설치 필요: apt install htop) kill / killall: 프로세스 종료 kill <PID> # 일반 종료 요청 (SIGTERM) kill -9 <PID> # 강제 종료 (SIGKILL) killall nginx # 지정한 이름의 모든 프로세스 종료 시스템 상태 및 서비스 관리 free: 시스템 메모리(RAM, Swap) 사용량 확인 free -h # 읽기 쉬운 단위(MB, GB)로 표시 uptime: 시스템 가동 시간 및 Load Average 확인 uptime systemctl: systemd 서비스 관리 sudo systemctl status nginx # 서비스 상태 확인 sudo systemctl start nginx # 서비스 시작 sudo systemctl stop nginx # 서비스 중지 sudo systemctl restart nginx # 서비스 재시작 sudo systemctl enable nginx # 부팅 시 자동 시작 설정 5. 권한 및 소유권 관리 chmod (Change Mode): 파일/디렉토리 접근 권한 변경 chmod 755 script.sh # 소유자: 읽기/쓰기/실행(7), 그룹: 읽기/실행(5), 기타: 읽기/실행(5) chmod +x script.sh # 실행 권한 부여 chmod -R 644 /path/to/dir # 하위 항목 전체 권한 변경 chown (Change Owner): 파일/디렉터리의 소유자 및 그룹 변경 sudo chown ubuntu:ubuntu file.txt # 소유자 및 그룹 변경 sudo chown -R ubuntu:ubuntu /var/www # 하위 항목 전체 소유자 변경 sudo (Superuser Do): 관리자(root) 권한으로 명령어 실행 sudo apt update 6. 네트워크 및 데이터 전송 네트워크 확인 ping: 네트워크 연결 상태 확인 ping 8.8.8.8 netstat / ss: 네트워크 포트 및 소켓 상태 확인 ss -tuln # 열려있는 TCP/UDP 포트 목록 조회 sudo ss -tulpn | grep 8080 # 8080 포트를 사용하는 프로세스 확인 ip / ifconfig: 네트워크 인터페이스 IP 확인 ip a # IP 주소 및 네트워크 인터페이스 정보 확인 파일 다운로드 및 전송 curl: HTTP/HTTPS 요청 보내기 및 데이터 수신 curl -I https://example.com # 응답 헤더 확인 curl -O https://example.com/file.zip # 파일 다운로드 wget: 웹에서 파일 다운로드 wget https://example.com/file.zip ssh: 원격 서버 접속 ssh user@remote_ip ssh -i key.pem user@remote_ip # SSH 키 파일로 접속 scp & rsync: 원격 파일 복사 및 동기화 scp file.txt user@remote_ip:/path/to/target/ # SCP로 파일 전송 rsync -avz ./src/ user@remote_ip:/path/to/target/ # rsync로 증분 동기화 7. 압축 및 아카이브 tar: 파일 묶기 및 압축 # tar.gz 압축하기 tar -czvf archive.tar.gz /path/to/dir # tar.gz 압축 해제하기 tar -xzvf archive.tar.gz zip / unzip: ZIP 압축 및 해제 zip -r archive.zip /path/to/dir unzip archive.zip 8. 유용한 Bash 팁 및 단축키 단축어 (Alias) & 환경 변수 alias: 자주 쓰는 긴 명령어를 짧은 별칭으로 등록 alias ll='ls -alF' export: 환경 변수 설정 export PATH=$PATH:/custom/bin history: 실행했던 명령어 히스토리 조회 history | grep docker # 이전에 실행한 docker 관련 명령어 검색 백그라운드 실행 &: 명령어를 백그라운드에서 실행 python3 app.py & nohup: 터미널이 종료되어도 프로세스가 지속되도록 실행 nohup python3 app.py > app.log 2>&1 & 주요 터미널 단축키 단축키 기능 설명 Ctrl + C 현재 실행 중인 프로세스 즉시 중단 Ctrl + Z 현재 실행 중인 프로세스 일시 정지 (배경 전환) Ctrl + R 과거 명령 히스토리 실시간 역검색 Ctrl + L 터미널 화면 깨끗하게 지우기 (clear 동일) Ctrl + A 커서를 줄의 맨 앞(시작)으로 이동 Ctrl + E 커서를 줄의 맨 뒤(끝)으로 이동 Tab 파일명/경로/명령어 자동 완성 마무리 위 명령어들은 리눅스 시스템 관리, 서버 운영, DevOps 및 로봇/소프트웨어 개발 환경에서 일상적으로 사용되는 핵심 커맨드입니다. 필요할 때 시트처럼 빠르게 참고하세요! ...
자주 쓰는 Docker 명령어 정리
Docker 환경에서 컨테이너 생성 및 실행, 이미지 관리, 네트워크/볼륨 처리, 시스템 자원 정리 및 Docker Compose 사용 시 자주 사용하는 핵심 명령어 모음입니다. 1. 컨테이너 생성 및 실행 (Container Lifecycle) 컨테이너 생성 및 실행 (docker run) # 기본 실행 (데몬 방식 백그라운드 -d) docker run -d --name my-nginx -p 80:80 nginx # 대화형 인터랙티브 터미널 접속 실행 (-it) docker run -it --name ubuntu-test ubuntu:22.04 /bin/bash # 컨테이너 종료 시 자동 삭제 (--rm) docker run --rm -it python:3.10 python -c "print('Hello Docker')" # 환경 변수 전달 (-e) 및 볼륨 마운트 (-v) docker run -d --name my-db \ -e MYSQL_ROOT_PASSWORD=secret \ -v /host/data:/var/lib/mysql \ -p 3306:3306 mysql:8.0 컨테이너 상태 조회 (docker ps) docker ps # 현재 실행 중인 컨테이너 목록 docker ps -a # 종료된 컨테이너를 포함한 모든 컨테이너 목록 docker ps -q # 컨테이너 ID만 출력 컨테이너 제어 (시작 / 중지 / 재시작 / 삭제) docker start my-nginx # 정지된 컨테이너 시작 docker stop my-nginx # 실행 중인 컨테이너 안전 종료 (SIGTERM) docker kill my-nginx # 강제 종료 (SIGKILL) docker restart my-nginx # 컨테이너 재시작 docker rm my-nginx # 중지된 컨테이너 삭제 docker rm -f my-nginx # 실행 중인 컨테이너 강제 삭제 docker rm $(docker ps -aq) # 모든 중지된 컨테이너 일괄 삭제 2. 컨테이너 접속 및 내부 상태 확인 실행 중인 컨테이너 명령 실행 및 접속 # 실행 중인 컨테이너의 bash/sh 터미널 접속 docker exec -it my-nginx /bin/bash # 접속하지 않고 컨테이너 내부 명령 단발성 실행 docker exec my-nginx ls -la /usr/share/nginx/html 로그 확인 (docker logs) docker logs my-nginx # 전체 로그 출력 docker logs -f my-nginx # 실시간 로그 스트리밍 (Tail -f 개념) docker logs --tail 100 -f my-nginx # 최근 100줄 출력 후 실시간 스트리밍 docker logs --timestamps my-nginx # 타임스탬프와 함께 로그 출력 상태 모니터링 & 세부 정보 조회 docker stats # 모든 실행 중인 컨테이너 CPU/RAM/네트워크 실시간 모니터링 docker stats my-nginx # 특정 컨테이너 리소스 모니터링 docker top my-nginx # 컨테이너 내부 실행 중인 프로세스 목록 docker inspect my-nginx # 컨테이너의 상세 메타데이터(IP, 바인드 마운트, 환경변수 등) JSON 출력 3. 도커 이미지 관리 (Image Management) 이미지 조회 및 검색 docker images # 다운로드된 이미지 목록 출력 docker search nginx # Docker Hub에서 이미지 검색 이미지 빌드 / 다운로드 / 삭제 # Docker Hub에서 이미지 다운로드 docker pull ubuntu:22.04 # Dockerfile 기반 이미지 빌드 docker build -t my-app:v1.0 . docker build --no-cache -t my-app:v1.0 . # 캐시 없이 깨끗하게 빌드 # 이미지 태그 지정 및 푸시 docker tag my-app:v1.0 myregistry.com/my-app:v1.0 docker push myregistry.com/my-app:v1.0 # 이미지 삭제 docker rmi ubuntu:22.04 docker rmi -f my-app:v1.0 # 강제 삭제 docker rmi $(docker images -f "dangling=true" -q) # 태그 없는 댄글링(Dangling) 이미지 삭제 4. 볼륨 & 네트워크 관리 볼륨 (Volume) 관리 docker volume ls # 볼륨 목록 조회 docker volume create my-vol # 새 볼륨 생성 docker volume inspect my-vol# 볼륨 저장 경로 및 정보 확인 docker volume rm my-vol # 볼륨 삭제 docker volume prune # 사용하지 않는 모든 볼륨 정리 네트워크 (Network) 관리 docker network ls # 네트워크 목록 조회 docker network create my-net# 사용자 정의 브릿지 네트워크 생성 docker network inspect my-net# 네트워크 연결 정보 및 IP 확인 docker network connect my-net my-container # 컨테이너를 특정 네트워크에 연결 docker network disconnect my-net my-container # 네트워크 연결 해제 docker network rm my-net # 네트워크 삭제 5. 시스템 청소 및 디스크 자원 정리 (Cleanup) # 도커 디스크 사용량 확인 docker system df # 미사용 자원(중지된 컨테이너, 미사용 네트워크, 댄글링 이미지 등) 일괄 정리 docker system prune # 미사용 볼륨 및 사용되지 않는 모든 이미지까지 포함하여 완전 정리 (주의!) docker system prune -a --volumes 6. 파일 복사 및 백업 / 아카이브 컨테이너 ↔ 호스트 간 파일 복사 (docker cp) # 호스트 파일 -> 컨테이너 내부로 복사 docker cp ./index.html my-nginx:/usr/share/nginx/html/index.html # 컨테이너 파일 -> 호스트로 복사 docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf 이미지 파일 백업 / 로드 (save & load) # 이미지를 tar 압축 파일로 저장 (폐쇄망 전송용) docker save -o my-app.tar my-app:v1.0 # tar 아카이브 파일에서 이미지 복원 docker load -i my-app.tar 7. Docker Compose 주요 명령어 docker-compose v2 표준인 docker compose 명령어 사용 기준입니다. ...