어쩌면 사소한 질문일 수도 있지만 제 질문은 이렇습니다.
실행 중인 도커 컨테이너에 연결되어 있으며 잠시 동안 이를 사용한 후 단위 테스트와 gdb를 "동시에" 실행해야 합니다.
그래서 다른 셸 탭(konsole 탭)을 열고 동일한 도커 컨테이너에 다시 연결했지만 $ docker attach container_name
내가 한 모든 작업은 두 첨부 파일 모두에 반영되었습니다. 그렇게 하면 cd /home/user/folder_foo
다른 탭도 "동일한 작업을 수행"하고 두 konsole 탭이 모두 동일한 폴더에 있게 됩니다. 동일한 명령이 두 탭에 모두 반영되는 것과 같습니다. 어쩌면 그것은 독특한 사용자 구조이고 나는 불가능할 수도 있습니다.
동일한 도커 컨테이너에서 두 가지 작업을 동시에 수행해야 하는데 어떻게 해야 합니까?
$ docker --version
Docker version 20.10.9, build c2ea9bc
우분투 21.04를 사용하고 있습니다
답변1
컨테이너에 연결현재 입력 및 출력 스트림(따라서 대화형으로 실행하는 경우 터미널)을 컨테이너에서 실행 중인 진입점 명령에 연결합니다. 따라서 서로 다른 터미널의 여러 첨부 파일은 동일한 명령에 대해 동일한 출력을 표시하며, 두 터미널의 입력은 두 첨부 파일 모두에 영향을 미칩니다.
동일한 컨테이너에서 서로 다른 명령을 동시에 실행하려면 실제로 필요합니다.다양한 명령 실행. 두 번째 명령의 경우 첫 번째 첨부 파일을 유지하고 다음을 실행하세요.
docker exec -it container_name /bin/bash
/bin/bash
( 컨테이너 이미지 가 있다고 가정 )
이렇게 하면 동일한 실행 컨테이너 내에 두 개의 독립적인 셸이 제공됩니다.