반응형
1. 이미지 다운로드 및 저장
인터넷이 연결된 환경에서 필요한 도커 이미지를 다운로드합니다:
docker pull <image_name>:<tag>
다운로드한 이미지를 tar 파일로 저장합니다:
docker save -o <image_name>.tar <image_name>:<tag>
ex) ‘nginix’ 이미지를 다운로드할 경우
docker pull nginx:latest
docker save -o nginx.tar nginx:latest
2. 이미지 파일 이동
scp, ftp, sftp 등 파일 전송 명령어는 많다.
scp를 사용한 예는 다음과 같다.
scp [옵션] [파일명] [원격지_id]@[원격지_ip]:[받는위치]
scp image.tar root@172.10.50.208:~
3. 이미지 로딩 및 태깅
폐쇄망 환경에서 tar 파일을 로드합니다:
docker load -i nginx.tar
로드한 이미지를 폐쇄망 레지스트리에 푸쉬할 수 있도록 태깅합니다. 먼저 레지스트리 주소를 확인합니다:
docker tag nginx:latest <폐쇄망_레지스트리_URL>/nginx:latest
ex) 폐쇄망 레지스트리 URL이 registry.example.com인 경우:
docker tag nginx:latest registry.example.com/nginx:latest
4. 이미지 푸쉬
이제 태깅한 이미지를 폐쇄망의 프라이빗 도커 레지스트리에 푸쉬합니다:
docker push <폐쇄망_레지스트리_URL>/nginx:latest
ex)
docker push registry.example.com/nginx:latest
** 만약 진행 중에
...
unauthorized: No auth
...
이런 에러가 발생한다면
docker login localhost:5000
로그인 후 위의 과정을 진행하면 잘 된다.
(**) 에러 사항
"exec /bin/cat: exec format error" 메시지가 발생할 경우
잘못된 실행 파일 형식: 컨테이너 이미지가 호스트 시스템의 아키텍처와 맞지 않을 때 발생합니다. 예를 들어, ARM 아키텍처에서 빌드된 이미지를 x86_64 시스템에서 실행하려고 할 때 발생할 수 있습니다.
이 문제를 해결하기 위해 몇 가지 검토해야 할 사항과 수정 방법을 제안합니다.
1. 컨테이너 이미지의 아키텍처 확인
컨테이너 이미지가 호스트 시스템의 아키텍처와 일치하는지 확인해야 합니다.
# Docker 이미지의 아키텍처 확인
docker inspect <image_name> --format='{{.Architecture}}'
호스트 시스템의 아키텍처도 확인하세요:
uname -m
2개 비교해서 다르면 같은 아키텍처 가진 쪽에서 이미지 빌드해서 넣어주기
반응형
'미들웨어' 카테고리의 다른 글
Jenkins - Pipeline 형식 (0) | 2024.12.15 |
---|---|
nexus repository 연동 (Maven) (1) | 2024.12.08 |