도커 볼륨은 도커 컨테이너 내부의 데이터를 보관하는 데 사용되는 영구 저장 공간입니다. 볼륨은 컨테이너가 종료되어도 데이터를 유지하고, 여러 컨테이너 간에 데이터를 공유하는 데 사용됩니다. 이는 데이터베이스 파일, 구성 파일, 로그 파일 등 컨테이너 의 상태와 관련된 중요한 데이터를 저장하는 데 유용합니다.

 

도커 볼륨을 생성하는 방법에는 여러 가지가 있습니다. 다음은 가장 일반적인 방법입니다.

'docker volume ls' 명령어는 도커 호스트에서 사용 가능한 모든 볼륨을 나열하는데 사용합니다.

-v [볼륨 이름]:[컨테이너 내부 경로] [이미지 이름]

'Mountpoint' 값은 도커 컨테이너 내부에서 마운트된 파일 시스템의 경로를 나타냅니다. 이 경로는 컨테이너 내부에서 해당 마운트가 실제로 사용되는 디렉토리 또는 파일을 가리킵니다.

  • Type : 마운트  유형을 나타내는 값으로, 일반적으로 "bind" 또는 "volume" 입니다. "bind"는 호스트 파일시스템과 바인드 마운트를 나타내면, "volume"은 도커 볼륨을 사용한 마운트를 나타냅니다.
  • Source : 마운트의 소스 경로를 나타냅니다. "bind" 마운트의 경우 호스트의 경우를 나타내고, "volume"마운트의 경우 도커 볼륨의 이름이 표시됩니다.
  • Destination : 마운트된 파일 시스템이 컨테이너 내부에서 사용되는 경로를 나타냅니다.
  • Mode : 마운트의 모드를 나타냅니다.
  • RW : 마운트가 읽기/쓰기 가능한지 여부를 나타냅니다. "ture"는 읽기/쓰기 가능한 마운트를 "false"는 읽기 전용 마운트를 나타냅니다.
  • Propagation : 마운트 프로퍼게이션 방식을 나타냅니다.

여기에 있는 로그는 칼리리눅스의 로그가 아니라 웹서비스의 로그입니다.

ngnix로 가면 웹 로그 입니다. 웹 로그 같은 경우에는 같은 여기서는 볼 수 없습니다. '/dev/stdout/'으로 출력이 됩니다. 도커 컨테이너 같은 경우 이런 방식으로 처리를 합니다.

'docker logs' 명령어를 통해서 확인할 수 있습니다.

도커 볼륨이란?

도커 볼륨은 도커 컨테이너 내부에서 파일 또는 디렉토리로 사용되며, 컨테이너의 데이터 관리를 위한 핵심적인 기능입니다. 컨테이너는 일반적으로 상태를 갖지 않기 때문에 도커 볼륨을 사용하여 컨테이너 내에서 발생한 데이터를 영구적으로 저장할 수 있습니다.

 

볼륨의 장점

도커 볼륨을 활용하면 여러 가지 장점을 얻을 수 있습니다. 첫째, 데이터의 영속성이 보장됩니다. 컨테이너가 종료되더라도 도커 볼륨을 통해 데이터를 유지할 수 있어 중요한 데이터의 손실을 방지할 수 있습니다. 둘째, 데이터의 공유가 가능합니다. 여러 컨테이너가 동일한 볼륨을 공유하여 데이터를 사용하고 업데이트를 사용하고 업데이트 할 수 있습니다. 이는 여러 컨테이너로 구성된 애플리케이션에서 데이터의 일관성을 유지하면서 효율적으로 작업할 수 있는 장점을 제공합니다.

 

도커 볼륨의 활용 방법

  • 호스트 볼륨 : 호스트 시스템의 특정 경로를 도커 컨테이너에 마운트하여 사용하는 볼륨입니다. 호스트 볼륨을 사용하면 호스트 시스템과 컨테이너 간에 데이터를 공유할 수 있습니다.
  • 바인드 마운트 : 호스트 시스템의 특정 디렉토리를 도커 컨테이너에 직접 마운트하는 방식입니다. 바인드 마운트는 컨테이너와 호스트 간에 실시간으로 데이터를 동기화할 수 있는 유용한 방법입니다.
  • 익명 볼륨 : 컨테이너에 의해 사용되는 임시적인 데이터를 저장하는 볼륨입니다. 익명 볼륨은 도커 엔진에 의해 자동으로 생성되며, 컨테이너가 삭제되면 함께 삭제됩니다.
  • 외부 볼륨 드라이버 : 도커 엔진에 의해 제공되지 않는 외부 스토리지 시스템과 연동하여 데이터를 저장하는 볼륨입니다. 이를 통해 클라우드 서비스나 네트워크 저장소 등을 활용할 수 있습니다.

 

도커 볼륨 관리

도커는 볼륨을 관리하기 위한 다양한 명령어와 옵션을 제공합니다. 도커 명령어를 사용하여 볼륨을 생성, 삭제 목록 조회 등의 작업을 수행할 수 있습니다. 또한, 볼륨을 컨테이너에 연결하고 분리하는 등의 관리 작업도 가능합니다. 도커 볼륨은 도커 컴포즈를 통해 정의하고 관리할 수도 있으며, 볼륨 관리를 자동화하는 도구와 통합하여 편리하게 사용할 수도 있습니다.

 

도커 볼륨은 도커 컨테이너의 데이터 관리를 위한 핵심적인 요소입니다. 데이터의 영속성과 공유성을 유지하면서 컨테이너 간의 데이터 관리를 효율적으로 수행할 수 있습니다. 도커 볼륨을 활용하여 중용한 데이터의 안정성을 확보하고, 여러 컨테이너 간의 데이터 공유와 연동을 실현할 수 있습니다. 도커의 강력한 기능 중 하나의 볼륨을 적절히 활용하여 애플리케이션의 데이터 관리를 개선할 수 있습니다.

도커는 컨테이너화된 애플리케이션을 빌드, 및 실행하기 위한 오픈 소스 플랫폼입니다. 도커 호브는 도커 이미지를 저장하고 공유하기 위한 클라우드 기반 레지스트리입니다. 이 글에서 도커 허브에 이미지를 업로드하는 방법을 알아보겠습니다.

 

commit은 도커 컨테이너의 변경 사항을 이미지로 저장하는 기능입니다. commit을 통해 변경된 컨테이너의 상태를 새로운 이미지로 만들 수 있습니다.

  1. 도커 허브의 아이디와 일치하는 것을 추천합니다. 왜냐하면 오류가 발생하는 경우가 있습니다.
  2. 컨테이너 이름
  3. 컨테이너 ID or 이미지:태그

-a 옵션을 사용하여 작성자 정보를 추가하면 이미지 메타데이터에 해당 정보가 저당되어 추후 이미지를 확인할 때 유용합니다. 하지만 이는 선택적인 옵션이며, 필수적으로 지정해야 하는 것은 아닙니다. 

 

commit으로 만든 이미지를 확인할 수 있습니다.

이미지를 도커 허브에 업로드하기 위해 로그인해야 합니다.

이미지를 태그를 변경하거나 새로운 태그를 추가할 수 있으며, 이는 동일한 이미지를 다른 버전이나 라벨로 관리할 때 유용합니다. 이 후 해당 이미지를 레지스트리에 푸시하거나 다른 작업에서 해당 태그를 사용할 수 있습니다.

(도커 호브만의 규칙이라고 생각하시면 될 것 같습니다.)

태그를 추가한 이미지를 확인할 수 있습니다.

이미지가 성공적으로 업로드되었는지 확인합니다. 도커 허브 웹사이트로 이동하여 업로드한 이미지를 확인할 수 있습니다.

기존에 있는 이미지를 삭제하여 우리가 올려던 이미지를 도커 허브에서 다시 다운로드해 보겠습니다.

우리가 최종적으로 테스트 하였던 페이지를 볼 수 있습니다.

'docker stop' 명령어는 실행 중인 도커 컨테이너를 중지하는 데 사용되는 명령어입니다. 이 명령어를 사용하면 컨테이너가 정상적으로 종료되며, 컨테이너 내부의 프로세스가 종료되고 모든 리소스가 정리됩니다.

 

중지하려는 도커 컨테이너의 ID나 이름을 확인합니다. (ps 명령어를 이용하면 됩니다)

컨테이너의 이름 대신 컨테이너의 ID을 사용할 수도 있습니다.

도커 엔진은 컨테이너에 정지 신호를 보내고, 컨테이너의 프로세스가 종료됩니다. 컨테이너의 상태가 'exited'로 변경된 것을 알 수 있습니다.

 

'docker start' 명령어는 중지된 도커 컨테이너를 다시 시작하는데 사용되는 명령어입니다. 실행 중이 아닌 컨테이너를 시작하여 컨테이너 내부의 프로세스가 다시 실행되고, 컨테이너가 동작 상태로 전환됩니다.

 

먼저 시작하려는 도커 컨테이너의 ID나 이름을 확인해야합니다. 'docker ps -a' 명령어를 사용하여 모든 컨테이너를 확인할 수 있습니다.


웹 서버 페이지 변경하기

도커 컨테이너의 프로세스에 직접 들어가려면 'docker exec' 명령어를 사용하여 컨테이너의 내부 쉘에 접속해야합니다. 이를 통해 컨테이너 내에서 명령어를 실행하고 상호작용할 수 있습니다.

docker exec -it [컨테이너 ID or 이름] bash

컨테이너 내부의 bash쉘을 실행하는 명령어입니다. 이를 통해 컨테이너의 내부 쉘에 접속 할 수 있습니다. 도커 엔진은 컨테이너의 내부 쉘을 실행하고, 터미널에 접속합니다. 이제 해당 컨테이너 내에서 원하는 명령어를 실행하고 사용작용할 수 있습니다.

웹 페이지를 변경할 수 있는 위치로 이동을 해줍니다. (버전에 따라서 다른곳에 있을 수 있습니다)

도커 컨테이너 같은 경우에는 경량화된 리눅스를 사용하기 때문에 툴들이 설치가 안되어 있는 경우가 있습니다. 이런 경우는 직접 설치를 하여서 사용하면 됩니다.

위와 같은 과정을 통해 도커 컨테이너 내의 웹 페이지를 수정할 수 있습니다. 중요한 점은 수정해야 할 소스코드의 위치를 알고 있어야 하며, 해당 소스 코드를 편집한 후 컨테이너를 재시작하여 변경 사항을 적용해야 한다는 것입니다.

+ Recent posts