튜토리얼 컨테이너 생성 및 실행
이전 포스트에서 MacOS에서 도커 데스크탑을 설치하고, 튜토리얼 컨테이너를 생성 및 실행하였습니다. 튜토리얼 컨테이너가 아직 생성되지 않았거나, 실행이 중단된 경우 터미널에서 다음 명령문을 입력합니다.
$ docker run -d -p 80:80 docker/getting-started
튜토리얼 컨테이너가 정상적으로 실행되면, http://localhost/tutorial/에서 튜토리얼에 대한 웹 페이지를 확인 할 수 있습니다.
튜토리얼에 앞서 우리가 방금 실행한 명령문부터 살펴볼까요? 우선, 명령문의 시작인 docker는 도커의 API를 호출하는 것을 의미합니다. 이어지는 옵션의 내용은 다음과 같습니다.
- -d
컨테이너를 데몬에서 실행합니다(Detached mode). - -p 80:80
컨테이너를 실행하는 호스트의 80번 포트를 컨테이너의 80번 포트와 맵핑합니다. - docker/getting-started
컨테이너에 실행되는 이미지 이름을 지정합니다.
도커 이미지와 컨테이너
도커의 이미지(Image)는 우리가 개발한 소프트웨어 실행에 필요한 모든 리소스-소스 코드, 라이브러리, 라이브러리, 의존성, 실행 파일 등을 모두 포함합니다. 이미지는 컨테이너가 실행하는 유닛이며, 하나의 이미지를 사용하여 여러 개의 컨테이너를 실행시킬 수 있습니다. 이미지는 도커 파일(Dockerfile)에 의해 생성됩니다. 일단 생성된 이미지는 더 이상 변경되지 않는 불변(Immutable) 상태입니다. 이미지는 가상 머신의 이미지에 비해 훨씬 가볍고, 이로인해 도커 허브(Docker hub)에서 이미지를 공유하고 버전 관리하는 것이 가능합니다.
로컬 머신에서 관리하는 이미지는 도커 데스크탑에서 Images 탭에서 확인 할 수 있습니다.
도커의 컨테이너는 이미지를 실행하는 유닛입니다. 도커의 컨테이너는 컨테이너가 실행되는 호스트 OS의 리소스를 공유하여 사용합니다. 컨테이너가 추가되고, 삭제되는 것은 이미지의 생성과 삭제와 별개로 동작하기 때문에 탄력적/동적으로 컨테이너를 관리하는 것이 가능합니다. 컨테이너는 호스트에서 동작하는 모든 프로세스로부터 독립된 프로세스입니다(리눅스의 커널 네임스페이스와 cgroup을 기반으로 동작합니다).
로컬 머신에서 관리하는 컨테이너는 도커 데스크탑에서 Containers/Apps 탭에서 확인 할 수 있습니다.
'DevOps & Infra > Docker' 카테고리의 다른 글
[Infrastructure/Docker] 튜토리얼 살펴보기#003. 애플리케이션 업데이트하기 (0) | 2022.02.23 |
---|---|
[Infrastructure/Docker] 튜토리얼 살펴보기#002. 이미지 만들기 (0) | 2022.02.23 |
[Infrastructure/Docker] IntelliJ IDEA에서 도커 데몬 연동하기 (0) | 2022.02.22 |
[Infrastructure/Docker] 도커 데스크탑과 도커 허브, MacOS에서 도커 데스크탑 설치하기 (0) | 2022.02.22 |
[Infrastructure/Docker] 도커(Docker)와 컨테이너(Container) (0) | 2022.02.22 |