Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 2개 있습니다.)

"Docker Desktop for Windows"의 "Linux Container" 모드를 위한 tcp 바인딩 추가

지난 글에서 설명한 대로,

윈도우 환경에서의 dockerd.exe("Docker Engine" 서비스)가 Linux의 것과 다른 점
; https://www.sysnet.pe.kr/2/0/12168

daemon.json에서의 tcp 바인딩 설정은 "Linux Container" 모드인 경우 예외를 발생하게 됩니다. 대신, 이에 대한 우회 방법은 제공하는데요.

Cannot set hosts in daemon configuration
; https://github.com/docker/for-win/issues/453

For unsecured connection: https://hub.docker.com/r/jarkt/docker-remote-api
For TLS connection: https://hub.docker.com/r/kekru/docker-remote-api-tls

이 방법도 "DockerDesktopVM의 파일 시스템 접근"에서와 같이 docker스러운 방법으로 해결하고 있어, 그냥 다음과 같이 docker-remote-api 컨테이너를 구동하면 됩니다.

c:\temp> docker pull jarkt/docker-remote-api
c:\temp> docker run -p 2375:2375 -v /var/run/docker.sock:/var/run/docker.sock jarkt/docker-remote-api

"Docker Desktop for Windows"는 "-p" 옵션의 매핑 포트를 (실제 dockerd가 실행되는) "DockerDesktopVM" 가상 머신 내부가 아닌, DockerDesktopVM을 호스팅하는 윈도우 시스템의 "com.docker.backend.exe"가 열고 중계를 합니다. 따라서, 2375 포트와 현재의 윈도우 머신 IP를 대상으로 원격 docker.exe 클라이언트에서 다음과 같이 명령어를 수행하면, 결국 DockerDesktopVM 내부의 dockerd 프로세스로 중계되는 요청을 할 수 있습니다.

// 원격 머신에서 docker-remote-api 컨테이너를 수행 중인 192.168.100.50 호스트로 tcp 바인딩

C:\temp> docker -H tcp://192.168.100.50:2375 images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
jarkt/docker-remote-api   latest              abd8bbdf149a        2 years ago         8.24MB

참고로 다음은 "docker info" 결과입니다.

C:\temp> docker -H 192.168.100.50:2375 info
Client:
 Debug Mode: false

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 6
 Server Version: 19.03.5
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339
 runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.19.76-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.92GiB
 Name: docker-desktop
 ID: Q46Z:POTP:4MRH:XJIT:XBI7:HXTU:V33Y:UFLC:3Z77:QQNV:IZ2U:ZA6V
 Docker Root Dir: /var/lib/docker
 Debug Mode: true
  File Descriptors: 44
  Goroutines: 59
  System Time: 2020-03-07T16:58:07.835887458Z
  EventsListeners: 4
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 3/8/2020]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 106  107  108  109  110  111  112  113  [114]  115  116  117  118  119  120  ...
NoWriterDateCnt.TitleFile(s)
11108정성태11/13/201622082.NET Framework: 624. WPF - Line 요소를 Canvas에 위치시켰을 때 흐림(blur) 현상파일 다운로드1
11107정성태11/9/201626385오류 유형: 371. Post cache substitution is not compatible with modules in the IIS integrated pipeline that modify the response buffers.파일 다운로드1
11106정성태11/8/201626637.NET Framework: 623. C# - PeerFinder를 이용한 Wi-Fi Direct 데이터 통신 예제 [2]파일 다운로드1
11105정성태11/8/201621137.NET Framework: 622. PeerFinder Wi-Fi Direct 통신 시 Read/Write/Dispose 문제
11104정성태11/8/201620006개발 환경 구성: 305. PeerFinder로 Wi-Fi Direct 연결 시 방화벽 문제
11103정성태11/8/201620489오류 유형: 370. PeerFinder.ConnectAsync의 결과 값인 Task.Result를 호출할 때 System.AggregateException 예외 발생
11102정성태11/8/201620564오류 유형: 369. PeerFinder.FindAllPeersAsync 호출 시 System.UnauthorizedAccessException 예외 발생
11101정성태11/8/201622756.NET Framework: 621. 닷넷 프로파일러의 오류 코드 - 0x80131363
11100정성태11/7/201630367개발 환경 구성: 304. Wi-Fi Direct 지원 여부 확인 방법 [1]
11099정성태11/7/201632237.NET Framework: 620. C#에서 C/C++ 함수로 콜백 함수를 전달하는 예제 코드파일 다운로드1
11098정성태11/7/201621509오류 유형: 368. 빌드 이벤트에서 robocopy 사용 시 $(TargetDir) 매크로를 지정하는 경우 오류 발생
11097정성태11/7/201624510오류 유형: 367. go install: no install location for directory [...경로...] outside GOPATH
11096정성태11/6/201627953디버깅 기술: 83. PDB 파일을 수동으로 다운로드하는 방법
11095정성태11/6/201624629.NET Framework: 619. C# - Cognitive Services 중의 하나인 Face API를 사용해 얼굴 인식 및 흐림(blur) 효과 적용 [1]파일 다운로드1
11094정성태11/5/201626312VC++: 105. Visual Studio 2013/2015 - Ceemple OpenCV 확장을 이용한 웹캠 영상 출력
11093정성태11/4/201626168웹: 34. Edge 브라우저도 지원하는 클립보드 복사를 위한 자바스크립트 코드
11092정성태11/3/201633259.NET Framework: 618. C# - NAudio를 이용한 MP3 파일 재생 [5]파일 다운로드1
11091정성태11/3/201627076VC++: 104. std::call_once를 이용해 thread-safe한 Singleton 객체 생성파일 다운로드1
11090정성태11/1/201628623VC++: 103. C++ CreateTimerQueue, CreateTimerQueueTimer 예제 코드 [9]파일 다운로드1
11089정성태11/1/201628404디버깅 기술: 82. Windows 10을 위한 Symbol(PDB) 파일 내려받는 방법 [2]
11088정성태11/1/201631604.NET Framework: 617. C# - AForge.NET을 이용한 MP4 동영상 파일 재생 [7]파일 다운로드1
11087정성태11/1/201625925.NET Framework: 616. AForge.Video.FFMPEG를 최신 버전의 ffmpeg 파일로 의존성을 변경하는 방법파일 다운로드1
11086정성태11/1/201620278오류 유형: 366. The Microsoft Passport Container service terminated with the following error: General access denied error
11085정성태10/27/201635118.NET Framework: 615. C# - AForge.NET을 이용한 웹캠 영상 출력 [2]파일 다운로드1
11084정성태10/26/201622880오류 유형: 365. The User Profile Service service failed to the sign-in.
11083정성태10/26/201629236Windows: 131. 윈도우 10에서 사라진 "Adapters and Bindings" 네트워크 우선 순위 조정 기능 [1]
... 106  107  108  109  110  111  112  113  [114]  115  116  117  118  119  120  ...