이 글에서는 입문자를 위한 도커 시리즈로 도커 입문 시리즈 - Docker 컨테이너 개념에 대해서 소개합니다.
안녕하세요! ITibiza입니다.
쉽게 설명해서 도커란?
도커는 다양한 운영체제에서 리눅스의 컨테이너 환경을 제공하기 위한 엔진입니다.
이제 본론으로 도커에 컨테이너에 개념에 대해서 자세히 알아보겠습니다.
도커 이미지란?
2024.08.02 - [개발/Docker] - [도커 입문 시리즈] docker 이미지와 레이어 개념
컨테이너(container)란?
컨테이너는 애플리케이션을 실행할 수 있는 환경입니다.
운영체제와는 다른 개념으로 리눅스 운영체제에서 애플리케이션을 실행할 수 있는 독립된 환경을 제공하는데 이때 독립된 환경이 컨테이너입니다.
즉, 도커 컨테이너는 도커 이미지로부터 생성되는 실행 가능한 독립적인 인스턴스입니다.
도커 컨테이너 특징
- 격리된 환경: 컨테이너는 서로 독립된 파일 시스템, 네트워크, 프로세스 등을 가집니다.
- 경량성: 컨테이너는 운영 체제의 커널을 공유하므로 가상 머신보다 훨씬 가볍고 빠르게 실행됩니다.
- 이식성: 컨테이너는 애플리케이션과 그 실행 환경을 함께 패키징 하므로, 어떤 환경에서도 동일하게 실행될 수 있습니다.
nginx 도커 컨테이너 예제
도커 컨테이너와 관련된 주요 명령어와 옵션을 설명하겠습니다.
docker run
docker run 명령어는 새로운 컨테이너를 생성하고 실행합니다.
예제
docker run -d -p 80:80 --name my-nginx nginx
명령어 옵션
- d : 컨테이너를 백그라운드에서 실행합니다.
- p : 호스트와 컨테이너의 포트를 매핑합니다 (예: p 80:80은 호스트의 포트 80을 컨테이너의 포트 80에 매핑)
- -name : 컨테이너의 이름을 지정합니다 (예: -name my-nginx).
- nginx : 사용할 도커 이미지의 이름입니다.
docker ps
docker ps 명령어는 현재 실행 중인 컨테이너 목록을 출력합니다.
예제
docker ps
docker ps -a
옵션
- a : 실행 중인 컨테이너뿐만 아니라 종료된 모든 컨테이너를 표시합니다.
docker stop
docker stop 명령어는 실행 중인 컨테이너를 중지합니다.
예제
docker stop my-nginx
생성한 컨테이너 이름을 입력합니다.
docker rm
docker rm 명령어는 중지된 컨테이너를 삭제합니다.
예제
docker rm my-nginx
docker rm -f my-nginx
옵션
- f : 강제로 컨테이너를 삭제합니다. 실행 중인 컨테이너도 삭제됩니다.
docker exec
docker exec 명령어는 실행 중인 컨테이너 내에서 명령어를 실행합니다.
예제
sh코드 복사
docker exec -it my-nginx bash
옵션
- it : 대화형 모드로 터미널을 연결합니다.
docker logs
docker logs 명령어는 컨테이너의 로그를 출력합니다.
예제
docker logs my-nginx
옵션
- f : 실시간으로 로그를 출력합니다.
docker images
docker images 명령어는 로컬에 저장된 도커 이미지 목록을 출력합니다.
예제
docker images
docker rmi
docker rmi 명령어는 도커 이미지를 삭제합니다.
예제
docker rmi nginx
docker rmi -f nginx
옵션
- f : 강제로 이미지를 삭제합니다. 이 이미지를 사용하는 모든 컨테이너도 삭제됩니다.
docker 컨테이너 개념 마지막으로
도커 컨테이너 생성한 도커 이미지로부터 생성되는 실행 가능한 격리된 인스턴스입니다.
도커 컨테이너를 활용하면 실행되는 환경을 일관성 있게 유지하며, 개발, 테스트, 배포과정에서 발행하는 환경 차이로 인한 문제를 줄입니다.
개발을 하다 보면 개발 환경에 세팅하는데 많은 시간이 소비될 때가 있습니다.
이러한 문제는 업무 생산성을 떨어뜨리기 때문에 도커를 활용해서 이러한 환경 문제를 줄이고 일관성 있게 개발, 배타, 운영 환경을 유지할 수 있습니다.
다음 시간에는 DockerFile에 대한 개념에 대해서 알아보겠습니다.
2024.08.14 - [경제용어] - 신용카드 페이백(Payback) 개념
2024.08.13 - [IT소식] - 엣지 서버(Edge Server) 알아보기
2024.08.12 - [IT소식] - 가장 핫한 DB postgresql 개념과 사용해야 하는 이유
'개발 > Docker' 카테고리의 다른 글
[도커 입문 시리즈] Dockerfile 개념 및 사용법 (0) | 2024.08.22 |
---|---|
[도커 입문 시리즈] docker 이미지와 컨테이너 사용법 알아보기 (0) | 2024.08.08 |
[도커 입문 시리즈] docker 이미지와 레이어 개념 (0) | 2024.08.02 |
[도커 입문 시리즈] MacOS에서 Docker 설치하는 방법 (0) | 2024.07.31 |