반응형
회사 내부 환경에서는 보안 정책 때문에 해외 apt 레포지토리에 접근할 수 없는 경우가 많습니다.
이럴 때 Docker 이미지 빌드를 진행하면 apt update나 apt install 단계에서 오류가 발생하게 됩니다.
이 문제를 해결하려면 Ubuntu 기본 미러를 국내 미러로 변경해야 합니다.
아래 예제는 이를 Dockerfile에 반영한 방법을 보여줍니다.
1. Dockerfile 예제
# Ubuntu 국내 미러로 교체 후 Python3-pip 설치
RUN find /etc/apt/ -type f \( -name "*.list*" -o -name "*.sources" \) -exec sed -i \
-e 's|http://archive.ubuntu.com/ubuntu/|http://kr.archive.ubuntu.com/ubuntu/|g' \
-e 's|http://security.ubuntu.com/ubuntu|http://kr.archive.ubuntu.com/ubuntu/|g' {} + \
&& apt update \
&& apt install -y python3-pip \
&& apt clean
🔹 설명
- APT 미러 변경
- /etc/apt/sources.list와 /etc/apt/sources.list.d/*.sources 파일에서
글로벌 서버(archive.ubuntu.com, security.ubuntu.com) 주소를
국내 미러(kr.archive.ubuntu.com)로 일괄 교체합니다. - find -type f 옵션을 사용하여 정규 파일만 선택하고, 디렉토리가 포함되어 발생할 수 있는 오류를 방지합니다.
- /etc/apt/sources.list와 /etc/apt/sources.list.d/*.sources 파일에서
- 패키지 목록 업데이트
- apt update를 통해 변경된 미러의 패키지 목록을 최신 상태로 가져옵니다.
- 필요 패키지 설치
- Python3용 pip를 설치합니다.
- -y 옵션으로 자동으로 설치를 진행합니다.
- 캐시 정리
- apt clean으로 불필요한 캐시를 삭제하여 Docker 이미지 용량을 줄입니다.
2. 개선 포인트
- 기존에는 sed 명령어를 반복해서 여러 파일에 적용했지만,
find ... -exec sed -i ... {} + 방식으로 한 번에 안전하게 처리하도록 개선했습니다. - 이렇게 하면 Docker 이미지 빌드 과정에서 오류가 발생하지 않고,
코드도 훨씬 깔끔하고 유지보수하기 쉬워집니다. - 회사 내부 환경에서도 안정적으로 Docker 이미지 빌드가 가능합니다.
3. 마무리
이 방법을 적용하면:
- 해외 apt 서버 접근이 막혀 있는 환경에서도 패키지를 설치할 수 있습니다.
- Dockerfile이 간결해지고, 유지보수가 용이합니다.
- 필요한 패키지를 안정적으로 설치하면서 이미지 용량도 최적화할 수 있습니다.
회사 내부 환경에서 Docker를 사용할 때 반드시 국내 미러를 활용하는 습관을 추천드립니다.
반응형
'배운 내용 > Docker' 카테고리의 다른 글
| 리눅스 도커 런타임 문제와 재설치 과정 (0) | 2025.09.09 |
|---|---|
| [Docker]Dockerfile(Ubuntu 24.04) 회사 내부망에서 apt HTTPS 우회 빌드 (0) | 2025.09.05 |
| 도커 이미지 로드 용량 부족 에러 날 때 (0) | 2024.08.02 |
| Dockerfile 만들 때 필요한 패키지만 설치하기 (1) | 2024.04.12 |
| docker 기본 명령어 (0) | 2023.07.26 |
