dit옵션과 attach
1. docker run -d --name myubuntu ubuntu 를 cmd창에 입력했다.
- myubuntu라는 이름으로 컨테이너가 실행이 되어야 하는데 실행된 컨테이너에 보이지 않음.
- 이전에 아파치를 받았던 방식은 OS에 아파치를 받아서 계속 실행된 것인데 지금 받은 방식은 OS에 아무런 프로그램이 없기 때문에 실행하자마자 죽어버리는 것.
2. docker run -dit --name myubuntu ubuntu
- -d: 컨테이너를 백그라운드에서 실행
- -i: 포준 입력(stdin)을 유지하며 컨테이너를 실행
- -t: 터미널을 할당
- --name myubuntu: 컨테이너에 이름을 부여(여기서는 myubuntun)
- ubuntu: 실행할 Docker의 이미지 이름, 다른 컨테이너를 실행할 때 link로 같이 결합해서 실행할 수 있게 함.
- ubuntu에 프로그램을 할당? 해주어서 바로 종료되지 않게 해주었음.
- attach로 실행중인 컨테이너에 접근하는 명령어임.
- 아래의 ls는 윈도우 명령어가 아닌 ubunto의 명령어를 의미함.
docker exec 명령어 변경
- apache같이 이미 while이 돌고 있는 image는 attach 명령어로는 리눅스 환경으로 접근하지 못하므로, exec 명령어에 bash를 추가하여 입력함으로써 리눅스 환경으로 접근가능
정리
1. OS (ubuntu)
docker run -dit ubuntu bash
- docker run -d ubuntu : ubuntu는 그냥 os이기 때문에 실행하자마자 바로 종료
- docker run -dit ubuntu bash: bash모드로 실행했기 때문에 종료되지 않음.
- 이 상태에서 docker attach [컨테이너ID]로 접속 가능
2. while process (httpd)
docker run -d -p 8080:80 httpd
docker exec -it 컨테이너ID bash
- docker run -d -p 8080:80 httpd: 서버가 동작중이라 바로 종료되지 않음. -d는 백그라운드 설정
- docker run -d -p 8080:80 httpd bash: bash로 실행되기 때문에 아파치 서버가 실행되지 않음. 그래서 바로 죽어버림
'Docker' 카테고리의 다른 글
[Docker] docker file step1 - 기본기 (0) | 2024.01.22 |
---|---|
[Docker] commit 이미지 굽기와 docker hub 업로드 (0) | 2024.01.22 |
[Docker] 모든 image 한번에 삭제하는 명령어 (0) | 2024.01.21 |
[Docker] 컨테이너 포트포워딩 및 데몬으로 실행 (1) | 2024.01.21 |
[Docker] 컨테이너 실행하기 (0) | 2024.01.21 |