Docker 컨테이너의 파일 시스템을 탐색하는 방법은 무엇입니까?

3357 단어 linuxdocker
Docker container’s 파일 시스템을 탐색할 때 대화형 및 비대화형의 두 가지 방법이 있습니다. 간단히 말해서 Docker 컨테이너의 파일 시스템에 대한 대화식 탐색은 컨테이너의 bash를 통해 파일 시스템에 액세스하여 수행할 수 있습니다. 반면에 비대화형 탐색은 tar 파일을 통해 컨테이너 환경에 들어가거나 컨테이너의 파일 시스템을 복사하지 않고 파일 시스템을 연구하는 것과 관련이 있습니다.

이 기사에서 이 두 가지 방법을 모두 논의해 보겠습니다.

컨테이너 파일 시스템의 대화식 탐색



컨테이너는 파일 시스템을 탐색할 수 있는 두 가지 상태(비실행 및 실행)에 있을 수 있습니다. 실행되지 않는 컨테이너란 컨테이너가 아직 생성되지 않았거나 생성되었지만 중지되었음을 의미합니다. 이러한 컨테이너의 파일 시스템을 탐색하려면 먼저 run the container해야 합니다.

Ubuntu 컨테이너의 파일 시스템을 탐색하려고 하는데 컨테이너가 아직 존재하지 않는다고 가정합니다. Docker run command을 대화형 옵션과 함께 사용하여 컨테이너의 bash에 액세스할 수 있습니다.
$ docker run -it --name=myubuntu ubuntu:latest bash

위의 명령은 i(대화형) 및 t(의사-TTY) 옵션을 사용하여 터미널을 컨테이너의 스트림에 연결하여 호스트 시스템을 통해 컨테이너의 bash와 상호 작용할 수 있도록 합니다. 또한 이름 옵션을 사용하여 컨테이너에 이름을 제공했습니다. 이 명령을 실행하면 컨테이너의 bash에 액세스할 수 있으며 Ubuntu 시스템과 상호 작용하는 것과 동일한 방식으로 컨테이너의 파일 시스템과 상호 작용할 수 있습니다.

컨테이너가 중지되고 실행되지 않는 경우 아래에 언급된 docker start command을 사용하여 먼저 컨테이너를 시작해야 합니다.
$ docker start myubuntu

이것은 이전에 종료 상태였던 myubuntu 컨테이너를 시작합니다.

다음으로 Docker exec command을 사용하여 이미 실행 중인 컨테이너에 터미널을 연결할 수 있습니다.
$ docker exec -it myubuntu bash

Docker exec 명령은 실행 중인 컨테이너 내에서 명령을 실행하는 데 사용됩니다. 위의 명령을 사용하여 bash를 대화형 모드로 여는 myubuntu 컨테이너 내에서 bash 명령을 실행했습니다. 이제 이 bash를 통해 컨테이너의 파일 시스템과 쉽게 상호 작용할 수 있습니다.

-ai 옵션과 함께 Docker start command을 사용하여 터미널을 연결할 수도 있습니다.
$ docker start -ai myubuntu

컨테이너 파일 시스템의 비대화형 탐색



로컬 시스템에 컨테이너가 있고 비대화식 모드에서 해당 파일 시스템을 탐색하려고 한다고 가정합니다. Docker commit command 을 사용하여 파일 시스템의 복사본을 만들 수 있습니다. 이렇게 하면 모든 변경 사항을 커밋한 후 새 이미지가 생성되고 이 새 복사본 이미지와 연결된 컨테이너를 실행하고 파일 시스템을 검사할 수 있습니다.

시스템의 컨테이너를 확인하려면 다음 명령을 사용할 수 있습니다.
$ docker ps -a


이제 종료 상태에 myubuntu라는 컨테이너가 있다고 가정합니다. 이 컨테이너를 copy-image라는 새 이미지에 커밋해 보겠습니다.
$ docker commit myubuntu copy-image

이제 listing all the images 에 의해 새 이미지가 생성되었음을 확인할 수 있습니다.
$ docker images


이제 이 복사 이미지와 연결된 테스트 컨테이너를 실행하여 컨테이너의 파일 시스템을 탐색할 수 있습니다.
$ docker run -it --name=test-container copy-image bash


컨테이너의 파일 시스템을 탐색하는 또 다른 방법은 Docker 컨테이너에 SSH를 설치하고 ssh 데몬을 실행하는 것입니다. 이런 식으로 도커 컨테이너에 SSH를 수행하여 컨테이너의 파일 시스템을 지속적으로 탐색할 수 있습니다.
$ docker run -d -p 22 copy-image /usr/sbin/sshd -D

docker ps를 실행하여 연결할 포트를 확인할 수 있습니다.

요약하자면, 이 기사에서는 Docker 컨테이너의 파일 시스템을 탐색하는 네 가지 다른 방법에 대해 논의했습니다.

좋은 웹페이지 즐겨찾기