컨테이너(Container) 란?
컨테이너를 이해하기 위해 가상 머신(Virtual Machine)과 비교를 해본다.
기존의 VM(Virtual Machine)은 Hypervisor를 통해 여러 개의 운영체재(Guest OS)를 생성해 사용하는 데 이때 OS 전체를 복사하여 포함하기 때문에 수십 기가바이트를 필요로 한다. 또한 하이퍼바이저를 통해 실행되기 때문에 부팅이 느리고 일반 호스트에 비해 성능 손실이 발생한다.
컨테이너는 호스트 OS의 커널을 공유해 사용하기 때문에 성능 손실이 거의 없다. 컨테이너 내부에서는 필요한 라이브러리들만 설치되기 때문에 공간도 매우 적게 사용한다.
컨테이너 실행하기
바로 컨테이너를 실행해보자.
docker run -d -p 8080:80 docker/welcome-to-docker
Unable to find image 'docker/welcome-to-docker:latest' locally
latest: Pulling from docker/welcome-to-docker
579b34f0a95b: Pull complete
d11a451e6399: Pull complete
54b19e12c655: Pull complete
1c2214f9937c: Pull complete
1fb28e078240: Pull complete
94be7e780731: Pull complete
b42a2f288f4d: Pull complete
89578ce72c35: Pull complete
Digest: sha256:eedaff45e3c78538087bdd9dc7afafac7e110061bbdd836af4104b10f10ab693
Status: Downloaded newer image for docker/welcome-to-docker:latest
fda968b30ae868a27b56a220a78b1fc6271858f70eacc5de5b9252a276ed165e
docker run
명령으로 방금 컨테이너를 동작시켰다. 몇 가지 옵션이 있지만 우선 생략한다.
http://localhost:8080 으로 접속하면 축하해준다.
컨테이너 확인하기
이제 컨테이너를 실행했으니 컨테이너를 관리하는 가장 첫 번째, 컨테이너 리스트를 확인해보자.
docker ps
를 입력한다.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fda968b30ae8 docker/welcome-to-docker "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->80/tcp exciting_gauss
출력 결과에서 알 수 있듯이 현재 컨테이너의 정보들을 보여준다.
💡 docker ps 커맨드는 현재 실행중인 컨테이너만 보여준다. 중지된 컨테이너까지 보고 싶다면 -a 옵션을 사용하여 docker ps -a 를 사용한다.
컨테이너 종료하기
마지막으로 실행중인 컨테이너를 종료한다.
종료를 하기 위해서는 container id 혹은 container name을 알면 된다. 여기서는 name을 입력한다.
docker stop exciting_gauss
exciting_gauss
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fda968b30ae8 docker/welcome-to-docker "/docker-entrypoint.…" 8 minutes ago Exited (0) 5 seconds ago exciting_gauss
이제 docker ps
로는 컨테이너를 확인할 수 없다. (-a
옵션으로 종료된 컨테이너까지 확인할 수 있다.)
💡 container ID를 사용할 때 전부 입력할 필요는 없고 다른 container와 구별될 수 있을 정도까지의 정보만 입력하기만 해도 된다. ex) docker stop fda
References
https://www.docker.com/resources/what-container/
https://docs.docker.com/guides/docker-concepts/the-basics/what-is-a-container/
'Docker' 카테고리의 다른 글
[Docker] 도커(docker) 시작하기 (3) - 레지스트리(Registry) (0) | 2024.07.09 |
---|---|
[Docker] 도커(docker) 시작하기 (2) - 이미지(image) (0) | 2024.07.09 |
[Docker] mac에 docker 설치 (feat. docker-compose) (0) | 2024.06.26 |