docker
그것이 어떻게 작동하는지 확인하려면 찌르십시오 .
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo docker run --net=host -d -t jmar71n/freepbx
2792243260a8de33d1a775d115188e601fc556e500b5ad085e09b4133d0f3d06
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo docker run -it jmar71n/freepbx bash
root@46f45b8973c3:/#
root@46f45b8973c3:/# exit
exit
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo docker run -it jmar71n/freepbx bash
root@813557bf8922:/#
root@813557bf8922:/# echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
root@813557bf8922:/#
이제 각각은 run
새로운 인스턴스인가요? 이것이 프롬프트가 변경된 이유입니까? 각각의 ?에는 hostname
고유한 ID가 있습니다.run
을 사용하여 첫 번째 인스턴스에 로그인하려면 어떻게 해야 합니까 --net=host
?
내가 시도할 때실행 플래그, 다음과 같이 실패합니다.
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo docker exec -it jmar71n/freepbx bash
Error: No such container: jmar71n/freepbx
ubuntu@ip-172-31-14-19:~$
왜? 이 인스턴스에 로그인하는 올바른 방법은 무엇입니까?
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 20c44cd7596f 2 days ago 123MB
hello-world latest 725dcfab7d63 2 weeks ago 1.84kB
jmar71n/freepbx latest 8dda2a58fde1 19 months ago 1.54GB
ubuntu@ip-172-31-14-19:~$
답변1
명령을 실행하면 run
매번 새로운 컨테이너가 생성됩니다.
run
도커 컨테이너 내부에 연결하는 옵션을 사용하여 실행하므로 프롬프트 -it
가 변경됩니다. 따라서 새 프롬프트를 사용하여 실행하는 모든 명령은 컨테이너 내에서 실행됩니다.
활성 프로세스를 종료한다고 말하면 exit
(bash, 생성 중에 매개변수로 전달했기 때문에) PID 1이 있는 기본 프로세스가 존재하는 동안에만 컨테이너가 존재하기 때문에 컨테이너가 중지됩니다.
인스턴스에 연결하려면 먼저 -d
분리 모드에서 실행한 다음 docker attach
.문서를 통해 컨테이너의 ID를 얻을 수 있습니다 docker ps -a
. 와 동일합니다 docker exec -it <containerID> bash
.
답변2
Docker가 실행되어 새 인스턴스(팔라가상화) 주어진 이미지의 환경.
특정 인스턴스에 로그인하려면 docker exec를 실행해야 하는데, 로그인하려는 컨테이너의 ID로 docker exec를 실행해야 합니다. 이는 다음 명령을 사용하여 얻을 수 있습니다.
docker ps -a
그런 다음 ID를 얻은 후 다음 명령을 사용하여 컨테이너에 로그인합니다.
docker exec -it <containerid> bash