Cmd는 컨테이너가 시작될 때 기본으로 실행될 명령어를 지정하지만, 도커 명령어로 다른 명령어를 실행하면 Cmd는 무시된다. Entrypoint는 Cmd보다 더 강력한 역할을 하며, Entrypoint에 의해 설정된 명령은 덮어쓸 수 없다. 대신 Cmd는 Entrypoint 명령의 인자로 사용될 수 있다.
요약
-Env 필드는 컨테이너 실행 시 환경 변수를 설정하여 애플리케이션이 유연하게 환경에 따라 동작할 수 있게 한다. -Cmd 필드는 컨테이너가 시작될 때 기본으로 실행할 명령을 지정하며, 특정 명령어가 따로 지정되지 않으면 Cmd에 정의된 명령이 실행된다.
컨테이너는 애플리케이션을 실행하기 위한 가벼운 독립적인 환경이다. 컨테이너는 애플리케이션과 그 애플리케이션이 제대로 실행되기 위한 모든 요소(라이브러리, 설정 파일 등)를 함께 묶어서 제공한다. 쉽게 말해, 컨테이너는 애플리케이션과 실행 환경을 함께 담은 상자라고 생각할 수 있다.
컨테이너는 애플리케이션과 그 실행 환경을 묶어서 제공하는 작은 독립된 공간이다.
다른 애플리케이션과 격리된 상태에서 실행되며, 어디서나 동일한 환경을 제공한다.
가상 머신보다 가볍고 빠르게 실행되며, 리소스 사용 효율이 높다.
애플리케이션을 위한 작은 독립 공간
컨테이너는 애플리케이션이 실행되는 별도의 공간을 제공한다. 이 공간은 다른 애플리케이션과 격리되어 있어, 각각의 애플리케이션이 서로에게 영향을 주지 않고 독립적으로 실행될 수 있다.
예를 들어, A라는 애플리케이션이 필요한 환경과 B라는 애플리케이션이 필요한 환경이 달라도, 각각의 컨테이너에서 서로 독립적으로 실행되기 때문에 문제없이 동작한다.
모든 것을 포함하는 패키지
컨테이너는 해당 애플리케이션이 동작하는 데 필요한 모든 파일(라이브러리, 의존성, 설정 파일 등)을 하나로 묶어서 제공한다. 이를 통해, 어느 환경에서든 동일하게 동작할 수 있다.
예를 들어, 개발자가 로컬 컴퓨터에서 만든 애플리케이션을 컨테이너로 패키징한 후 서버에 옮겨도, 컨테이너는 동일한 환경을 유지하므로 그대로 실행할 수 있다.
가벼운 가상화 기술
컨테이너는 기존의 가상 머신보다 훨씬 가벼운 가상화 기술이다. 가상 머신처럼 전체 운영체제를 설치하지 않고, 호스트 운영체제의 커널을 공유하면서도 각 컨테이너는 격리된 공간에서 실행된다. 덕분에 더 적은 리소스로 더 많은 애플리케이션을 실행할 수 있다.
어디서나 동일한 환경 제공
컨테이너는 한 번 패키징되면 어디서든 실행할 수 있다. 로컬 컴퓨터, 클라우드 서버, 테스트 환경 등 어떤 환경에서도 동일한 컨테이너를 실행할 수 있어 배포와 관리가 매우 편리하다.
예를 들어, 로컬에서 개발한 애플리케이션을 컨테이너로 묶어서 서버에 배포하면, 로컬에서 실행한 것과 같은 환경에서 애플리케이션이 실행된다.
빠른 시작과 종료
컨테이너는 매우 빠르게 시작하고 종료할 수 있다. 가상 머신처럼 운영체제를 부팅하는 시간이 필요하지 않기 때문에, 애플리케이션 실행 속도가 빠르다. 이는 빠른 배포와 롤백에 큰 장점을 제공한다.