다른 컨테이너가 같은 이미지(mariadb)를 쓰는 건 전혀 문제

2025. 12. 31. 23:55·인프라/docker
728x90
반응형

아니요. 다른 컨테이너가 “같은 이미지(mariadb:10.11)”를 쓰는 건 전혀 문제 아닙니다.
Docker는 이미지 1개로 컨테이너 여러 개 띄우는 게 정상이에요.

문제는 2가지가 섞여 있어요:


1) 이전 에러의 핵심: “이미지”가 아니라 “컨테이너 이름” 충돌

에러가 말한 건 이거였죠:

  • 컨테이너 이름 /mariadb 가 이미 존재함 → 같은 이름으로 또 만들 수 없음

docker ps -a 보면 실제로 mariadb 라는 이름의 컨테이너가 이미 있어요.

✅ 해결 방식

  • 기존 mariadb 컨테이너를 지우거나/이름 바꾸거나
  • docker-compose.yml에서 container_name: mariadb 같은 걸 쓰고 있다면 그 줄을 제거(추천)

참고로 docker compose down은 기본적으로 이미지는 안 지웁니다. 네트워크/컨테이너만 내리는 거라 docker images에 남아있는 게 정상이에요.


2) 지금 새로 뜬 에러: invalid containerPort: 1330223306

이건 이미지/컨테이너 충돌이 아니라, compose 파일의 “포트 설정”이 잘못된 것입니다.

  • 포트는 1~65535 범위여야 하는데,
  • compose가 “컨테이너 포트(target)”를 1330223306으로 읽어버렸다는 뜻이에요.
  • 보통 원인:
    1. ports:에 환경변수를 쓰는데 .env 값이 이상함
    2. ports: 문법을 YAML에서 잘못 써서 compose가 엉뚱하게 파싱함
    3. long syntax에서 target:에 잘못된 값이 들어감

바로 원인 찾는 1줄 명령 (강추)

아래를 실행하면 실제로 해석된 최종 compose 설정이 출력돼요. 여기서 1330223306이 어디서 나오는지 바로 보입니다.

docker compose config

그리고 포트 부분만 보고 싶으면:

docker compose config | sed -n '/ports:/,/environment:/p'

대부분 이렇게 고치면 해결됩니다 (예시)

mariadb는 보통 컨테이너 포트가 3306이라서:

services:
  mariadb:
    image: mariadb:10.11
    ports:
      - "3306:3306"   # (호스트:컨테이너)

환경변수로 쓴다면 (값 없으면 3306 기본):

ports:
  - "${MARIADB_PORT:-3306}:3306"

- 3306:3306 처럼 따옴표 없이 쓰면 YAML이 “문자열”이 아니라 “키:값 매핑”으로 오해할 수 있어서, 따옴표로 감싸는 걸 추천합니다.

.env 쓰고 있으면 이것도 확인

ls -al .env
cat .env | grep -i port

MARIADB_PORT=1330223306 같은 게 있으면 그게 범인입니다. 3306이나 3307 같은 정상 포트로 바꾸세요.


3) (선택) 기존 mariadb 컨테이너를 유지해야 한다면

이미 mariadb 컨테이너가 있으면, 새 프로젝트는 이름/포트를 바꿔서 공존시켜야 해요.

예)

  • 호스트 포트를 3307로 바꿈:
ports:
  - "3307:3306"

그리고 container_name은 되도록 제거(추천)하거나, 꼭 써야 하면 고유하게:

container_name: mariadb_te

 

728x90
반응형

'인프라 > docker' 카테고리의 다른 글

WSL(Windows Subsystem for Linux) 환경에서 Docker가 윈도우 측의 "자격 증명 도우미(Credential Helper)"와 통신하지 못해 발생  (0) 2026.01.15
인증이 필요한 Registry인데 로그인 정보가 없거나 만료된 상태 이슈 Get "https://abc.com/v2/": ... connection reset by peer  (0) 2026.01.14
docker compose Mariadb 실무 환경 설정  (0) 2025.12.23
외부 Ceph 클러스터를 Kubernetes 기본 StorageClass로 재사용하기 (ceph-csi로 CephFS/RBD 연동)  (0) 2025.12.17
Postgresql Docker 컨테이너에서 부팅 시 SSH 서비스 자동 실행 방법  (0) 2024.04.24
'인프라/docker' 카테고리의 다른 글
  • WSL(Windows Subsystem for Linux) 환경에서 Docker가 윈도우 측의 "자격 증명 도우미(Credential Helper)"와 통신하지 못해 발생
  • 인증이 필요한 Registry인데 로그인 정보가 없거나 만료된 상태 이슈 Get "https://abc.com/v2/": ... connection reset by peer
  • docker compose Mariadb 실무 환경 설정
  • 외부 Ceph 클러스터를 Kubernetes 기본 StorageClass로 재사용하기 (ceph-csi로 CephFS/RBD 연동)
nix-be
nix-be
  • nix-be
    NiX
    nix-be
  • 전체
    오늘
    어제
    • 홈
      • 책
        • 오브젝트
      • 성장
        • jpa Querydsl 정리
        • 코딩테스트
        • 스프링 핵심 원리 - 기본편
      • 인프라
        • linux
        • vmware
        • CI&CD
        • 네트워크
        • docker
      • 개발
        • spring boot
        • spring security
        • JPA
        • java
        • thymeleaf
        • 이슈
        • jquery
        • javascript
        • 안드로이드
        • MyBatis
        • git
        • 과제
      • DB
        • postgreSql
        • mysql
        • redis
      • 잡다한것
        • 프로그램
        • 일상 관련
        • 프로젝트-주차관리
      • 회사
        • 티
        • 피
  • 블로그 메뉴

    • 홈
    • 개발
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
nix-be
다른 컨테이너가 같은 이미지(mariadb)를 쓰는 건 전혀 문제
상단으로

티스토리툴바