docker run -d --name "지정한이름" 이미지이름
-d 가 아닌 -dit를 구동을 해도 똑같이 뜸을 확인
활성화된 컨테이너에 접속한다
docker attach 컨테이너ID
-d : background 실행. 없을 시 foreground 실행이 된다. 다만 서버는 background 실행이 권장된다.
httpd를 foreground로 실행하였다
attach로 컨테이너 접속이 되지 않음을 확인
foreground이므로 cmd 창을 하나 더 열어서 httpd 컨테이너에 접속한다
docker exec -it <container_name_or_id> bash
httpd 서버가 잘 작동된 것을 확인
!) -dit 가 아닌 -d로 자동 설치할 시 daemon이 바로 죽어버린다.
왜냐하면 설치한 ubuntu OS는 아무것도 없으며 while이 돌고 있지 않기 떄문에 run을 해도 바로 die가 되기 때문이다. (기존 httpd는 내부 apache가 while로 돌고 있기 떄문에 run을 하면 while이 돌아서 자동 설치가 되었음)
i : 상호작용 (글자를 적을 수 있음)
t: 터미널로작성
docker exec 컨테이너ID -bash
와의 차이역할: 실행 중인 컨테이너의 표준 입력(stdin), 표준 출력(stdout), 표준 오류(stderr)에 연결합니다.
주요 특징:
컨테이너의 기존 프로세스에 직접 연결합니다.
컨테이너가 시작되면서 실행 중인 기본 프로세스(예: CMD 또는 ENTRYPOINT에 정의된 프로세스)에 연결됩니다.
연결 후, 컨테이너에서 발생하는 로그를 실시간으로 볼 수 있고, 사용자 입력을 제공할 수 있습니다.
연결이 끊어지면 컨테이너도 종료될 수 있으므로 주의가 필요합니다. (특히 Ctrl+C를 눌렀을 경우)
역할: 실행 중인 컨테이너 내에서 새로운 프로세스를 실행합니다.
주요 특징:
사용 예:
docker exec -it <container_name_or_id> bash
컨테이너 내부에서 bash 쉘을 실행합니다. 만약 bash가 없다면 sh를 사용할 수 있습니다.