본문 바로가기
IT/도커

2. 도커에서 ubuntu 이미지 실행(sleep, exec)

by 노오-력 2023. 1. 19.
$ docker run ubuntu

위 명령어를 입력하면

ubuntu 이미지의 인스턴스를 실행하고 즉시 종료된다.

docker ps 로 실행중인 컨테이너 목록을 확인해도 실행되고 있는 컨테이너가 없다.

docker ps -a 로 멈춘 컨테이너까지 포함한 모든 컨테이너를 확인해 보면

새 컨테이너가 종료된 상태임을 확인할 수 있다.

 

왜 이런걸까?

가상머신과는 다르게 컨테이너의 목적은 운영체제 호스팅이 아니라

특정 작업이나 프로세스를 처리하는것이다.

컨테이너는 내부 프로세스가 실행되는 동안만 존재하며, 작업이 끝나면 컨테이너는 종료된다.

 

ubuntu 이미지로 아무 작업도 하지않고 실행만 하니까 바로 종료되는 것이다.

 

ubuntu의 경우와 같이 실행되는 서비스가 없는 이미지라면

sleep 명령어를 통해 docker가 프로세스를 실행하도록 명령할 수 있다.

$ docker run ubuntu sleep 5

위 명령어를 입력하면

5초 동안 잠자기(sleep)가 실행된 후

sleep 명령어가 종료되고 컨테이너가 중단된다.

 

 

그럼 실행 중인 컨테이너에 명령어를 사용하려면 어떻게 해야할까?

$ docker run ubuntu sleep 100
$ docker exec [container_id or name] cat /etc/hosts

ubuntu이미지를 100초 sleep로 실행해 두고

docker ps 로 해당 컨테이너의 id 혹은 이름을 확인한 뒤

docker exec 명령어로 해당 컨테이너에 명령어를 보낼 수 있다.

위의 예시에서는 cat /etc/hosts를 뒤에 붙여서 /etc/hosts 파일을 읽도록(cat) 명령을 보냈다

 

 

 

 

'IT > 도커' 카테고리의 다른 글

4. 도커 이미지 생성, 푸쉬  (0) 2023.01.21
3. 도커 실행 관련(태그, 포트, 볼륨 매핑 등)  (0) 2023.01.19
1. 기본적인 docker 명령어  (0) 2023.01.19
우분투에 도커 설치  (0) 2023.01.18
도커 작동원리  (0) 2023.01.18