성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>Docker Desktop에서 별도 서버에 설치한 docker registry에 이미지 올리는 방법</h1> <p> 우선, 자신의 docker에 등록된 이미지를 확인하고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp> <span style='color: blue; font-weight: bold'>docker images</span> REPOSITORY TAG IMAGE ID CREATED SIZE build_test latest 26d17c08ce0c 4 weeks ago 377MB py38agent-build-machine latest 3940b80cf93a 4 weeks ago 680MB golang latest 37eabbc422cd 5 weeks ago 941MB myapp_uwsgi latest ab2031a9d876 5 weeks ago 220MB python 3.8-slim-buster d78a351dcf4a 6 weeks ago 114MB </pre> <br /> 이들을 대상으로 원격에 올릴 수 있습니다. 이 글에서는 "py38agent-build-machine"을 192.168.100.5:5000에 서비스 중인 docker registry에 올린다고 가정해 보겠습니다.<br /> <br /> 이를 위해 우선 원격 docker 레지스트리에 대한 HTTP 접점을 이미지에 태깅해야 합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp> <span style='color: blue; font-weight: bold'>docker tag py38agent-build-machine 192.168.100.5:5000/py38agent-build-machine</span> C:\temp> <span style='color: blue; font-weight: bold'>docker images</span> REPOSITORY TAG IMAGE ID CREATED SIZE build_test latest 26d17c08ce0c 4 weeks ago 377MB <span style='color: blue; font-weight: bold'>192.168.100.5:5000/py38agent-build-machine</span> latest <span style='color: blue; font-weight: bold'>3940b80cf93a</span> 4 weeks ago 680MB py38agent-build-machine latest <span style='color: blue; font-weight: bold'>3940b80cf93a</span> 4 weeks ago 680MB golang latest 37eabbc422cd 5 weeks ago 941MB myapp_uwsgi latest ab2031a9d876 5 weeks ago 220MB python 3.8-slim-buster d78a351dcf4a 6 weeks ago 114MB </pre> <br /> 보는 바와 같이 "py38agent-build-machine" 항목과 "IMAGE ID"가 정확히 같은, 하지만 이름만 다른 "192.168.100.5:5000/py38agent-build-machine" 항목이 생겼습니다.<br /> <br /> 이쯤에서, 사실 개인적으로 왜 이런 태깅 단계를 두었는지 이해가 안 됩니다. 굳이 저렇게 하지 않아도 원격 registry에 올릴 수 있도록 docker 실행 파일에 옵션을 구성하면 될 텐데... 어째서 저렇게 중복 항목을 생성해 목록을 어지럽히는 결과를 감수했던 것일까요? (혹시 이에 대한 이력을 아시는 분은 덧글 부탁드립니다. ^^)<br /> <br /> 암튼, 저렇게 태깅 정보에 "192.168.100.5:5000"이라는 원격 docker registry에 대한 정보를 포함하고 있어서 해당 이미지를 push 하는 작업은 다음과 같이 간단하게 이뤄집니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp> <span style='color: blue; font-weight: bold'>docker push 192.168.100.5:5000/py38agent-build-machine</span> Using default tag: latest The push refers to repository [192.168.100.5:5000/py38agent-build-machine] Get "https://192.168.100.5:5000/v2/": http: server gave HTTP response to HTTPS client </pre> <a name='insecure_registry'></a> <br /> 명령은 저렇게 간단한데, 오류가 발생했군요. 이것은, 해당 docker registry 서버에서 https 통신을 제공하지 않기 때문입니다. 따라서, docker registry 측이 https 통신을 열어주거나, 아니면 클라이언트 측에서 HTTP 통신도 괜찮다는 것을 알려주면 됩니다.<br /> <br /> 여기서는 후자의 방법을 살펴보는데, 이를 위해 docker desktop에 다음과 같은 설정을 추가합니다<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='docker_registry_with_ddw_1.png' src='/SysWebRes/bbs/docker_registry_with_ddw_1.png' /><br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > { "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "features": { "buildkit": true }, <span style='color: blue; font-weight: bold'>"insecure-registries": ["192.168.100.5:5000"]</span> } </pre> <br /> 참고로, 이 설정 값은 "%USERPROFILE%\.docker\daemon.json" 경로에 저장이 됩니다. 이후, 재차 "docker tag py38agent-build-machine 192.168.100.5:5000/py38agent-build-machine" 명령어를 수행하면 정상적으로 실행되는 것을 확인할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > C:\temp> <span style='color: blue; font-weight: bold'>docker push 192.168.100.5:5000/py38agent-build-machine</span> Using default tag: latest The push refers to repository [192.168.100.5:5000/py38agent-build-machine] 98819e3ca6f1: Pushed ...[생략]... f11bbd657c82: Pushed latest: digest: sha256:78190d5c444209986c59e42fe73b6792ec4d6644369c2db5e190aced00beb789 size: 4091 </pre> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1358
(왼쪽의 숫자를 입력해야 합니다.)