실행 중인 컨테이너에 연결하여 출력 관찰
이전 단계에서 detached 모드로 컨테이너를 시작했습니다. 컨테이너가 간단한 명령을 실행하고 빠르게 종료되었을 가능성이 있지만, 여전히 컨테이너에 연결하여 출력을 볼 수 있습니다. docker attach 명령을 사용하면 실행 중이거나 종료된 컨테이너의 표준 입력, 출력 및 오류 스트림에 연결할 수 있습니다.
먼저, 이전 단계에서 시작한 컨테이너의 ID 를 가져오겠습니다. docker ps -a 명령을 사용하여 echo 명령을 실행하는 컨테이너를 찾을 수 있습니다. 컨테이너 ID 를 복사합니다.
docker ps -a
이제 docker attach 명령 다음에 컨테이너 ID 를 사용하여 컨테이너에 연결합니다.
docker attach <container_id>
<container_id>를 실제 컨테이너 ID 로 바꿉니다. 컨테이너가 간단한 echo 명령을 실행하고 종료되었으므로, 즉시 출력이 표시되지 않거나, 출력이 아직 버퍼링된 경우 "Hello from detached container!" 출력이 표시될 수 있습니다. attach 명령은 컨테이너의 스트림에 연결합니다. 컨테이너가 이미 작업을 완료했기 때문에 attach 명령은 연결 직후에 종료될 가능성이 높습니다.
계속 실행되는 컨테이너에 연결하는 것을 보여주기 위해, 몇 초 동안 컨테이너를 유지하는 명령을 실행하는 새로운 detached 컨테이너를 시작해 보겠습니다. 다시 ubuntu 이미지를 사용하고 sleep 10을 실행합니다.
docker run -d ubuntu sleep 10
docker ps를 사용하여 이 새로운 컨테이너의 ID 를 가져옵니다. 이번에는 컨테이너가 Up 상태여야 합니다.
docker ps
이제 해당 ID 를 사용하여 이 실행 중인 컨테이너에 연결합니다.
docker attach <new_container_id>
<new_container_id>를 sleep 10을 실행하는 컨테이너의 ID 로 바꿉니다. 컨테이너의 표준 스트림에 연결됩니다. sleep 명령은 출력을 생성하지 않으므로 아무것도 보이지 않습니다. 터미널은 대기 중인 것처럼 보입니다. 컨테이너는 10 초 동안 실행된 다음 종료됩니다. 컨테이너가 종료되면 attach 명령도 종료되어 터미널 프롬프트로 돌아갑니다.