🔥스파르타 TIL (Docker)

Docker 제대로 시작하기

승승장규 2025. 2. 27. 23:13
  • 컨테이너는 Docker 이미지를 실행한 상태입니다. 이미지가 정적인 템플릿이라면, 컨테이너는 실제로 애플리케이션이 실행되는 동적인 환경입니다.
  • 컨테이너는 격리된 공간에서 애플리케이션을 실행하며, 필요한 모든 의존성을 포함합니다.
  • 하나의 시스템에서 여러 개의 컨테이너를 독립적으로 실행할 수 있습니다.
docker run 
-d --name postgres-sample \
-p 5433:5432 \
-e POSTGRES_USER=admin \
-e POSTGRES_PASSWORD=admin \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /home/bsg/sample1:/var/lib/postgresql/data:z \
postgres

-d : 백그라운드에서 실행
-name : 컨테이너 이름을 설정
-p : 호스트의 5433 포트를 컨테이너의 5432 포트에 매핑 ex) postgresql은 기본적으로 5432포트를 사용함
-e : 환경 변수를 설정
PGDATA : postgresql이 데이터 파일을 저장할 경로를 설정함
-v : 볼륨을 마운트해서 호스트 시스템의 디렉토리나 파일을 컨테이너와 연결
postgres : 사용할 이미지 이름

 

강의를 듣다 보니 머릿속에 그려지지 않아서 잘 이해가 되지 않았었다. 

하지만 이전에 진행했던 프로젝트에서 postgresql을 사용했던 경험을 되살려보았다.

 

같은 호스트와 같은 컨테이너 포트를 사용하는 컨테이너를 2개 생성하고, 3 c750.... id를 가진 컨테이너를 실행시켜 보았다.

 

결과는 이미 사용 중인 5433 포트를 실행시키려 해서 오류가 발생해 버렸다.

여기서 호스트 포트는 하나만 사용 가능하다는 것을 알 수 있다. 만약 여기서 이미 실행 중인 컨테이너를 멈추고 삭제한 뒤에 다시 3 c750... id를 가진 컨테이너를 실행시키면

 

아주 잘 실행되는 것을 알 수 있다.

 

만약 호스트 포트가 다르다면 여러 개의 컨테이너를 실행시킬 수 있다는 것을 알았다.

 

 

이후에 네트워크와 볼륨에 대해 더 알아보자🖐️🖐️

'🔥스파르타 TIL (Docker)' 카테고리의 다른 글

Dockerfile과 docker-compose.yml  (0) 2025.03.12
Docker를 배워보자  (0) 2025.02.22
CI/CD와 Docker 란?  (1) 2025.02.10