본문 바로가기
BackEnd

[Docker] 여러 PC에서 동일한 이미지로 컨테이너 실행하는 팁

by Dddu 2025. 5. 11.
SMALL

Docker는 환경 불일치를 줄여주는 좋은 도구이지만,
다른 PC에서 동일한 이미지를 실행하려고 할 때 예상치 못한 문제가 종종 발생한다.
실제 과제 수행 중 겪은 시행착오를 정리한다.



1. 도커 이미지 옮기기

다른 PC에 Docker Hub 없이 이미지를 옮기고 싶다면 docker save, docker load를 사용한다.
# 기존 PC에서 이미지 저장
docker save -o test-app.tar test-app

# 옮긴 PC에서 이미지 로드
docker load -i test-app.tar
2. MySQL 컨테이너 버전 이슈

버전이 달라지면 실행 자체가 안 되는 경우가 있다.
8.0.41에서 오류가 나고 8.0.36에서는 정상 실행되었던 경험이 있다.
→ 특정 버전을 명시하여 사용하는 것이 안전하다.
# docker-compose.yml 예시
mysql:
  image: mysql:8.0.36
3. volume 디렉토리 주의

기존 PC에서 생성된 volume, init-db.sql, data 디렉토리가
다른 PC에서 경로가 맞지 않아 실행 오류가 날 수 있다.
→ 경로를 상대경로로 맞추거나, .env로 설정 관리 필요
4. 포트 충돌

기존 PC에서는 포트 3306, 8080이 비어있었지만
다른 PC에서는 이미 사용 중일 수 있다.
ports:
  - "3307:3306"  # 외부 포트는 상황에 맞게 수정
실행 후 아래 명령어로 확인 가능
docker ps
5. .env 파일로 유동성 확보

DB 비밀번호, 포트 번호 등은 .env 파일을 활용해 환경마다 다르게 설정할 수 있도록 한다.

# .env 파일
MYSQL_VERSION=8.0.36
MYSQL_PORT=3307
# docker-compose.yml 일부
image: mysql:${MYSQL_VERSION}
ports:
  - "${MYSQL_PORT}:3306"


도커는 한 번 설정해두면 어디서든 실행 가능할 것 같지만,
현실은 운영체제, 포트, 이미지 버전, 경로 등 예상보다 많은 변수가 있다.
담엔 삽질 덜 해야지 😙

LIST