Docker 컨테이너에 들어가는 방법은 다양합니다. 여기서는 Docker 컨테이너에 들어가는 데 일반적으로 사용되는 몇 가지 방법을 중점적으로 살펴보겠습니다.
(동영상 공유 학습: php 동영상 튜토리얼)
Docker 컨테이너에 들어가는 더 일반적인 방법은 다음과 같습니다.
Docker Attach 사용
SSH 사용
nsenter 사용
exec 사용
1. docker attachment를 사용하여 Docker 컨테이너에 진입합니다.
Docker는 Docker 컨테이너에 진입하기 위한 Attach 명령을 제공합니다.
다음으로 데몬 Docker 컨테이너를 생성한 다음 docker attachment 명령을 사용하여 컨테이너에 들어갑니다.
$ sudo docker run -itd ubuntu:14.04 /bin/bash
그런 다음 docker ps를 사용하여 컨테이너 정보를 확인한 다음 docker Attach를 사용하여 컨테이너에 들어갑니다.
$ sudo docker attach 44fc0f0582d9
컨테이너에 들어간 것을 확인할 수 있습니다.
그런데 이 명령을 사용하는데 문제가 있습니다. 여러 창이 이 명령을 사용하여 동시에 컨테이너에 들어가면 모든 창이 동시에 표시됩니다. 하나의 창이 차단되면 다른 창은 더 이상 작동할 수 없습니다.
이러한 이유로 docker Attach 명령은 프로덕션 환경에 적합하지 않습니다. 자체 애플리케이션을 개발할 때 이 명령을 사용할 수 있습니다.
2. SSH를 사용하여 Docker 컨테이너에 진입
프로덕션 환경에서 컨테이너에 진입하기 위해 docker Attach 명령을 사용하는 것을 제외하고 나면 누구나 가장 먼저 떠오르는 것이 SSH라고 생각합니다. 여러 사람이 서로 방해하지 않고 컨테이너에 들어갈 수 있도록 이미지(또는 컨테이너)에 SSH 서버를 설치합니다. 현재 프로덕션 환경에서는 모든 사람이 Docker를 사용하지 않고 이 작업을 수행한다고 생각합니다. 그러나 Docker 컨테이너를 사용한 후 SSH를 사용하여 Docker 컨테이너에 들어가는 것은 권장되지 않습니다.
3. nsenter를 사용하여 Docker 컨테이너에 들어가세요.
위의 두 가지 방법이 적합하지 않은 경우 nsenter를 사용하여 Docker 컨테이너에 들어가는 것이 더 편리한 방법입니다.
nsenter가 무엇인지 이해한 후 시스템은 기본적으로 필요한 nsenter를 호스트에 설치합니다.
설치되어 있지 않은 경우 아래 단계에 따라 설치하세요. (컨테이너가 아니라 호스트라는 점에 유의하세요.) 미러)
특정 설치 명령은 다음과 같습니다.
$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz $ tar -xzvf util-linux-2.24.tar.gz $ cd util-linux-2.24/ $ ./configure --without-ncurses $ make nsenter $ sudo cp nsenter /usr/local/bin
nsenter를 설치한 후 이 명령의 사용을 확인할 수 있습니다.
nsenter는 다른 프로세스의 네임스페이스에 액세스할 수 있습니다. 따라서 컨테이너에 연결하려면 컨테이너의 첫 번째 프로세스의 PID도 가져와야 합니다. docker Inspection 명령을 사용하여 PID를 가져올 수 있습니다.
dockerspect 명령은 다음과 같이 사용됩니다.
$ sudo docker inspect --help
inspect 명령은 이미지나 컨테이너의 정보를 계층적으로 표시할 수 있습니다. 예를 들어 현재 실행 중인 컨테이너가 있습니다.
Docker Inspection을 사용하여 컨테이너의 세부정보를 볼 수 있습니다.
$ sudo docker inspect 44fc0f0582d9
정보가 많아서 일부만 여기에 캡쳐해서 표시합니다. 컨테이너의 첫 번째 PID를 표시하려면 다음 방법을 사용할 수 있습니다.
$ sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9
프로세스의 PID를 가져온 후 nsenter 명령을 사용하여 컨테이너에 액세스할 수 있습니다.
$ sudo nsenter --target 3326 --mount --uts --ipc --net --pid $ sudo nsenter --target 3326 --mount --uts --ipc --net --pid
3326은 방금 얻은 프로세스의 PID입니다.
4. docker exec를 사용하여 Docker 컨테이너에 들어가세요
위 방법 외에도 docker는 버전 1.3 이후에 새로운 명령 exec를 제공합니다.
$ sudo docker exec --help
다음 이 명령을 사용하여 이미 실행 중인 컨테이너
$ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash
에 들어갑니다. 관련 권장 사항: docker tutorial
위 내용은 도커 컨테이너에 들어가는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!