2025/02/18: 2개의 글

[Docker] 도커 파일복사 및 확인

Posted by nkjok
2025. 2. 18. 13:51 낙서장[1]/4. Docker
반응형

도커 컨테이너와 로컬 시스템 간에 파일을 복사하고, 복사된 파일을 검증하는 과정은 도커를 활용하는 데 있어 중요한 부분입니다. 이번 포스팅에서는 docker cp 명령어를 사용하여 파일을 복사하고 검증하는 방법을 소개하겠습니다.

로컬 시스템에서 컨테이너로 파일 복사 및 확인

먼저, 로컬 시스템에 있는 파일을 도커 컨테이너로 복사한 후, 해당 파일이 제대로 복사되었는지 검증하는 방법을 알아보겠습니다.

  1. 로컬 시스템에서 컨테이너로 파일 복사:
    • /home/ubuntu/index.html: 로컬 시스템에 있는 복사할 파일의 경로입니다.
    • nginx-server:/usr/share/nginx/html/index.html: 파일을 복사할 도커 컨테이너와 대상 경로입니다. 
      docker cp /home/ubuntu/index.html nginx-server:/usr/share/nginx/html/index.html
      
  2. 컨테이너 내부의 파일 내용 확인:
    • cat /usr/share/nginx/html/index.html: 컨테이너 내부에서 파일 내용을 출력하여 복사된 파일을 검증합니다.
      docker exec -it nginx-server cat /usr/share/nginx/html/index.html
      

컨테이너에서 로컬 시스템으로 파일 복사 및 확인

다음으로, 도커 컨테이너에 있는 파일을 로컬 시스템으로 복사한 후, 해당 파일이 제대로 복사되었는지 검증하는 방법을 알아보겠습니다.

  1. 컨테이너에서 로컬 시스템으로 파일 복사:
    • nginx-server:/usr/share/nginx/html/index.html: 도커 컨테이너에 있는 복사할 파일의 경로입니다.
    • /home/ubuntu/indextest.html: 파일을 복사할 로컬 시스템의 대상 경로입니다.
      docker cp nginx-server:/usr/share/nginx/html/index.html /home/ubuntu/indextest.html
      
  2. 로컬 시스템에서 파일 목록 확인:
    • ls -l /home/ubuntu/indextest.html: 로컬 시스템에서 파일 목록을 확인하여 복사된 파일을 검증합니다.
      ls -l /home/ubuntu/indextest.html
      

 

docker cp 명령어를 사용하여 도커 컨테이너와 로컬 시스템 간에 파일을 복사하고, docker exec 명령어를 통해 컨테이너 내부의 파일을 검증하거나, ls -l 명령어를 통해 로컬 시스템의 파일을 검증할 수 있습니다. 이를 통해 컨테이너와 로컬 시스템 간의 파일 전송 및 확인 작업을 원활하게 수행할 수 있습니다.

반응형

[Docker] docker inspect 명령어 출력 정보

Posted by nkjok
2025. 2. 18. 13:47 낙서장[1]/4. Docker
반응형

inspect 출력 정보 중 일부

양식: docker inspect [컨테이너 NAMES]

예시: docker inspect nginx-server 

 

  • Id: 컨테이너의 고유 ID입니다.
  • Created: 컨테이너가 생성된 시간입니다.
  • Path: 컨테이너가 시작될 때 실행되는 명령어의 경로입니다.
  • Args: 컨테이너 시작 시 전달된 인수 목록입니다.

State 상태

  • Status: 현재 컨테이너의 상태입니다 (running, exited 등).
  • Running: 컨테이너가 실행 중인지를 나타냅니다 (true/false).
  • Paused: 컨테이너가 일시 중지 상태인지를 나타냅니다 (true/false).
  • Restarting: 컨테이너가 재시작 중인지를 나타냅니다 (true/false).
  • OOMKilled: Out Of Memory(OOM) 상태로 종료되었는지를 나타냅니다 (true/false).
  • Dead: 컨테이너가 죽었는지를 나타냅니다 (true/false).
  • Pid: 컨테이너의 프로세스 ID입니다.
  • ExitCode: 컨테이너가 종료된 코드입니다.
  • Error: 컨테이너가 종료될 때 발생한 에러 메시지입니다.
  • StartedAt: 컨테이너가 시작된 시간입니다.
  • FinishedAt: 컨테이너가 종료된 시간입니다.

HostConfig 설정

  • Binds: 호스트와 컨테이너 간의 바인딩된 볼륨 목록입니다.
  • ContainerIDFile: 컨테이너 ID가 저장된 파일입니다.
  • LogConfig: 컨테이너의 로그 구성입니다.
  • NetworkMode: 컨테이너의 네트워크 모드입니다.
  • PortBindings: 호스트와 컨테이너 간의 포트 바인딩 설정입니다.
  • RestartPolicy: 컨테이너의 재시작 정책입니다.
  • AutoRemove: 컨테이너가 종료될 때 자동으로 제거되는지를 나타냅니다.
  • VolumeDriver: 볼륨 드라이버 설정입니다.
  • ConsoleSize: 컨테이너의 콘솔 사이즈입니다.
  • CapAdd: 추가된 커널 기능 목록입니다.
  • CapDrop: 제거된 커널 기능 목록입니다.
  • CgroupnsMode: cgroup 네임스페이스 모드입니다.
  • Dns: 컨테이너의 DNS 설정입니다.
  • DnsOptions: 컨테이너의 DNS 옵션입니다.
  • DnsSearch: 컨테이너의 DNS 검색 도메인입니다.
  • ExtraHosts: 컨테이너의 추가 호스트 목록입니다.
  • GroupAdd: 컨테이너에 추가된 그룹 목록입니다.
  • IpcMode: 컨테이너의 IPC 모드입니다.
  • Cgroup: 컨테이너의 cgroup 설정입니다.
  • Links: 컨테이너 간 링크 목록입니다.
  • OomScoreAdj: OOM killer의 점수 조정 값입니다.
  • PidMode: 컨테이너의 PID 네임스페이스 모드입니다.
  • Privileged: 컨테이너가 특권 모드인지 나타냅니다 (true/false).
  • PublishAllPorts: 컨테이너의 모든 포트를 호스트에 노출할지 여부를 나타냅니다.
  • ReadonlyRootfs: 컨테이너의 루트 파일 시스템을 읽기 전용으로 설정합니다.
  • SecurityOpt: 컨테이너의 보안 옵션입니다.
  • UTSMode: 컨테이너의 UTS 네임스페이스 모드입니다.
  • UsernsMode: 컨테이너의 사용자 네임스페이스 모드입니다.
  • ShmSize: 컨테이너의 공유 메모리 크기입니다.
  • Runtime: 컨테이너의 런타임입니다.
  • Isolation: 컨테이너의 격리 수준입니다.
  • CpuShares: CPU 공유 설정입니다.
  • Memory: 메모리 설정입니다.
  • NanoCpus: 나노 CPU 설정입니다.
  • CgroupParent: 컨테이너의 cgroup 부모입니다.
  • BlkioWeight: 블록 IO 가중치 설정입니다.
  • BlkioWeightDevice: 블록 IO 가중치 장치 목록입니다.
  • BlkioDeviceReadBps: 읽기 Bps 제한이 설정된 블록 IO 장치 목록입니다.
  • BlkioDeviceWriteBps: 쓰기 Bps 제한이 설정된 블록 IO 장치 목록입니다.
  • BlkioDeviceReadIOps: 읽기 IOP 제한이 설정된 블록 IO 장치 목록입니다.
  • BlkioDeviceWriteIOps: 쓰기 IOP 제한이 설정된 블록 IO 장치 목록입니다.
  • CpuPeriod: CPU 주기 설정입니다.
  • CpuQuota: CPU 할당량 설정입니다.
  • CpuRealtimePeriod: 실시간 CPU 주기 설정입니다.
  • CpuRealtimeRuntime: 실시간 CPU 런타임 설정입니다.
  • CpusetCpus: CPU 집합 설정입니다.
  • CpusetMems: 메모리 집합 설정입니다.
  • Devices: 장치 목록입니다.
  • DeviceCgroupRules: 장치 cgroup 규칙입니다.
  • DeviceRequests: 장치 요청 목록입니다.
  • MemoryReservation: 메모리 예약 설정입니다.
  • MemorySwap: 메모리 스왑 설정입니다.
  • MemorySwappiness: 메모리 스와피니스 설정입니다.
  • OomKillDisable: OOM killer 비활성화 여부를 나타냅니다.
  • PidsLimit: PID 제한 설정입니다.
  • Ulimits: ulimit 설정 목록입니다.
  • CpuCount: CPU 개수 설정입니다.
  • CpuPercent: CPU 백분율 설정입니다.
  • IOMaximumIOps: 최대 IOps 설정입니다.
  • IOMaximumBandwidth: 최대 대역폭 설정입니다.
  • MaskedPaths: 마스킹된 경로 목록입니다.
  • ReadonlyPaths: 읽기 전용 경로 목록입니다.

GraphDriver 그래프 드라이버

  • Data: 그래프 드라이버 데이터입니다.
    • LowerDir: 하위 디렉터리 목록입니다.
    • MergedDir: 병합된 디렉터리 경로입니다.
    • UpperDir: 상위 디렉터리 경로입니다.
    • WorkDir: 작업 디렉터리 경로입니다.

NetworkSettings 네트워크 설정

  • Bridge: 브리지 네트워크 설정입니다.
  • SandboxID: 샌드박스 ID입니다.
  • SandboxKey: 샌드박스 키 경로입니다.
  • Ports: 포트 설정입니다.
    • HostIp: 호스트 IP입니다.
    • HostPort: 호스트 포트입니다.
  • HairpinMode: 헤어핀 모드 여부입니다.
  • LinkLocalIPv6Address: 링크 로컬 IPv6 주소입니다.
  • LinkLocalIPv6PrefixLen: 링크 로컬 IPv6 접두사 길이입니다.
  • SecondaryIPAddresses: 보조 IP 주소 목록입니다.
  • SecondaryIPv6Addresses: 보조 IPv6 주소 목록입니다.
  • EndpointID: 엔드포인트 ID입니다.
  • Gateway: 게이트웨이 주소입니다.
  • GlobalIPv6Address: 글로벌 IPv6 주소입니다.
  • GlobalIPv6PrefixLen: 글로벌 IPv6 접두사 길이입니다.
  • IPAddress: IP 주소입니다.
  • IPPrefixLen: IP 접두사 길이입니다.
  • IPv6Gateway: IPv6 게이트웨이 주소입니다.
  • MacAddress: MAC 주소입니다.
  • Networks: 네트워크 설정 목록입니다.
반응형