어려운 부두 노동자의 개념은 이해? 제 바인딩 도커 포트를 얻을


저자 | 디터 Jordens

번역기 | 소련 이와 같은, Zebian | yugao

출품 |  CSDN (ID : CSDNnews)

다음은 번역입니다 :

            

기본 개발자, 당신이 그것을 대답 면접관 희망 정확하게 부두 노동자의 작동 인터뷰를하는 동안,이 인터뷰에 참여되지 않는 이유는 무엇입니까? 8, 10 통찰력을 얻을 희망, 또는 기술적 인 오늘 인터뷰 후보. 사실, 조금 미친 짓이야. 대학이나 다른 학교에서, 그들은 아마 당신에게 부두 노동자의에 대해 아무것도 가르쳐주지 않습니다. 당신이 정말로 도커을 이해한다면, 당신은 후보자의 군중에서 밖으로 서 할 수 있습니다.

당신은 부두 노동자를 사용하기 시작할 때, 처음 발견 된 문제 중 하나는 당신이 도커 컨테이너에 연결할 수 있다는 것입니다. 그 일이 왜이 문서에서는 상세하게 질문을 설명하며, 어떻게 작동하는지 나는 포트 바인딩 (바인딩 포트)입니다 설명합니다.

숙련 된 개발자하더라도, 당신은 바인딩 포트가 무엇인지 이해한다. 그렇지 않으면, 당신은 인터뷰에서 바보 볼 것이다. 당신이 이해하지 않으면, 그래서 지금은 커피 한 잔을 자신을 제공합니다. 난 당신이 당신의 마음에 기록이 주제에 알고 싶은 모든 것을 넣어 드릴 것입니다, 당신은 단지 6 분 보낼 필요!

하자 Nginx에 도커 용기를 시작!

당신은 부두 노동자의 약간의 지식이있는 경우에 대해 걱정할 필요가 없습니다. 나는 부두 노동자에 대해 자세히 모든 것을 설명하려고합니다 때문입니다. 첫째, 당신이 부두 노동자 부두 노동자 용기와 거울 사이의 차이를 이해하도록해야합니다.

당신은 특정 프로그램을 실행하기 위해 종속성과 구성을 모두 포함하는 파일로 이미지를 고정 표시기 수 있습니다. 이 왜? 부두 노동자가 첫 번째 문제를 해결하려는 때문에 시스템 / 설치 악몽이다.

우리는 윈도우, 맥 또는 리눅스 시스템에 설치 경험이 풍부한 상황이있다. 그러나 좌절 때마다 시스템이 다른 프로그램의 부족에 대한 메시지를 표시하는 것입니다. 설치하지 않을, 내가 설치, 마우스 오른쪽을 선택합니다이 문제가 발생할 때마다 생각으로 프롬프트에 다음과 같은 시스템처럼?

이 프로그램의 할 일을 설치해야? ...

결국 당신은 다른 프로그램을 많이 설치해야하지만, 종종 시스템 변수를 구성해야하고, 그래서하지 찾을 수 있습니다. 최악의 경우, 이러한 시스템의 혼란을 만들 것입니다.

당신은 확실히 오른쪽 조직 모두 경험에서 당신 문제가 이런 종류의 싶지 않아?

도커 이미지가 프로그램을 설치하는 데 필요한 모든 기능이 포함되어 있기 때문에 고정 표시기 미러는이 문제를 해결하는 데 도움이 될 수 있습니다. 선박이 실행되는 동안 예를 도커 고정 표시기 미러링.

당신은 설치의 악몽을 해결하기 위해 고정 표시기. 도커 컨테이너는 모두 더도 덜하지도, 그것을 실행하는 데 필요하지가 포함되어 있습니다. 당신은 윈도우, 리눅스 또는 Mac에서 부두 노동자 용기를 실행할 수 있습니다. 설치 고정 표시기 않을 경우 기본적으로, 당신은 어디에서 실행할 수 있습니다.

도커의 장점에 대해 충분히보다 더 걸었다. 다음으로, 우리는 부두 노동자 컨테이너가 실행을 시작하게하는 것입니다 필요가있다.

의는 Nginx에 도커 용기 시작하자. Nginx에 포트 80에서 웹 서버를 실행 중입니다. 자, 내가 사용 Nginx에 도커 이미지 도커 컨테이너, 다음 명령을 시작 분할 모드 (배경)에서를 :

docker container run -d nginx

이 명령은 새 UUID 도커 컨테이너를 볼 것이다, 새로운 도커 컨테이너를 생성합니다. 당신이 그렇게 UUID 모르는 경우 내가 쓴 것을 읽어 보시기 바랍니다 이 문서 의 모든 내용에 대한합니다. ps 명령 (고정 표시기 추신)를 사용하여 용기 고정 표시기,이 도커 컨테이너가 활성화되어 표시됩니다

             

당신이 사용하려고하면 지금 컬의 명령을하거나 부두 노동자 용기에 직접 연결하는 브라우저를 사용하여 오류 연결 오류가 발생합니다 (아래 참조). 그것은 무엇 때문에 때문에 당신은 도커 용기에 직접 연결할 수없는 이유는 무엇입니까? 도커 문서는 해당 포트 80이 설명이 다소 불분명 ... 취약 설명했다. 하지만 걱정하지 마세요, 나는 다음 섹션에서 자세한 설명을 줄 것이다!

curl -I 127.0.0.1:80
curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused

왜 도커 용기에 직접 연결할 수없는 이유는 무엇입니까?

사실, 부두 노동자 용기는 모든 구성하지 않고 외부 세계에 연결할 수 있습니다. 우리는 우리가 프로그래밍 전의 변경 아무것도하지 않기 때문 좋다.

그러나 기본적으로 외부 세계는 부두 노동자 용기에 직접 연결 할 수 없습니다.

그런 말을하는 데, 난 당신이 이해한다고 생각합니다, 우리는 서로 다른 기대. 그래서 당신은 어떻게 당신의 부두 노동자 컨테이너에 연결해야합니까? 음, 다양한 옵션이 있습니다. 이제 알아 보자.

도커는 모든 포트를 열어 1

docker container run -P -d nginx

다음 용기를 열고 각 포트 -p 명령이 개시되어있다. 고정 표시기에서 식별 될 Dockerfile 각 포트를 개시 및 매개 변수가 개시된 각 포트의 사용 도커 용기 제작 명령 --expose. 개방 각 포트는 직접 호스트의 "무작위"포트에 바인딩.

좋은 소리지만, 우리는 어떻게 이러한 포트를 찾을 수 있습니까? 걱정하지 마세요, 우리는 당신의 사랑하는 포트를 찾을 수 있습니다, 도움에 대한 방법도 여러 가지를 찾을 수 있습니다. 다음으로, 나는 당신에게 두 가지 방법을 보여 드리겠습니다 :

  • 도커 컨테이너 포트

  • NETSTAT

우리의 첫 번째 옵션은 도커 명령 (고정 표시기 컨테이너 포트) 위의를 사용하는 것입니다. 당신은 위의 명령과 용기 UUID를 입력해야합니다. 당신은 도커 컨테이너 포트 80 (이 명령을 실행하려고하면, 당신은 다른 포트를 볼 수 있습니다) 호스트 포트 32768 0.0.0.0의 IP 주소에 바인딩 볼 수 있습니다.

docker container port *insert container_uuid*
80/tcp -> 0.0.0.0:32768

우리의 다른 옵션은 netstat 명령을 사용하는 것입니다. 열려있는 모든 포트를 찾으려면 다음 명령을 실행할 수 있습니다. 포트 부두 노동자가 다른 포트들 사이에서 혼합 열려 있음을 참고,이 경우 세 번째 행에있는 포트는 우리가 찾고있는 것입니다.

netstat -ntlp

     

       

netstat 명령을 사용하여 열려있는 모든 포트를 찾을 수 있습니다.

특정 포트를 열어 2

             

예 포트 바인딩 : 호스트의 포트 8080 도커 용기 포트 (80)를 결합.

고정 표시기는, 모든 포트는 일반적으로 좋은 생각이 아니다 열 수 있습니다 기본적으로 단순히 어떤 포트가 열리지 않습니다, 이것은 안전을위한 것입니다. 당신은 어떤 혜택을 가지고 있지 않았기 때문에, 오른쪽, 모두를 공개하고 싶지 않아?

당신이 포트를 열려면, 다음 명령을 실행합니다 :

docker container run -p 8080:80 -d nginx

이 명령은 공개 호스트 포트 8080을 통해 Nginx의 컨테이너 포트 (80)가 발생합니다. 이제, 우리는 다양한 방법을 통해 컨테이너에 연결할 수 있습니다. 예를 들어, 컬 명령이나 브라우저를 통해를 사용. 이 잘되지 않습니다!

축하합니다, 지금 당신은 마지막으로 도커 포트 바인딩 가장 중요한 부분을 이해! 지금 나는 당신에게 컬 명령 실행의 결과를 보여줄 것이다 :

curl -I 0.0.0.0:8080HTTP/1.1 200 OK
Server: nginx/1.17.9
Date: Sun, 08 Mar 2020 11:38:47 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 03 Mar 2020 14:32:47 GMT
Connection: keep-alive
ETag: "5e5e6a8f-264"
Accept-Ranges: bytes

0.0.0.0 : 브라우저에서이 주소를 방문하면 8080을, 다음 브라우저는 당신에게 다음과 같은 내용을 표시합니다 :

             

0.0.0.0:8080 브라우저를 통하여 케이스에 접속되어있다.

한 가지 더

기본적으로 도커 컨테이너 포트에 (시스템 및 경기에 어떤 IP 주소) IP 주소 0.0.0.0으로 공개됩니다. 당신은 IP가 부두 노동자를 결합 할,이 IP는 127.0.0.1 수 있습니다 또한, 말할 수있는 또 다른 IP 주소가 될 수 있습니다.

호스트 시스템의 포트 8000 (현지 호스트라고도 함) IP 주소 127.0.0.1에 도커 컨테이너 포트 (80)를 결합 할 경우, 당신은 단순히 다음 명령을 실행합니다 :

docker run -d -p 127.0.0.1:8000:80 nginx

결론

도커 컨테이너를 들어, 도커 바인딩 포트는 매우 중요한 개념이다. 구성의 문제는 들어오는 연결 (들어오는 연결)을 필요로하기 때문에 시작할 수 있으며, 혼동 될 수있다. 그러나 고정 표시기 모든 문서를 제공하는 측면에서 좋은 작업을하는 데 필요한.

그러나, 개발자, 부두 노동자의 개념은 다른 개념을보다 이해하기 더 어렵다. 바라 건데,이 기사를 읽고, 당신은 매우 명확 도커 포트가 바인딩있었습니다. 그렇지 않은 경우 아래에 댓글을 남겨주세요!

원본 링크 :

https://medium.com/better-programming/how-does-docker-port-binding-work-b089f23ca4c8

이 기사는 기사 CSDN의 번역, 소스를 표시하시기 바랍니다 것입니다.

【종료】

추천 도서 

애플 3 월에 싼 새로운 아이폰을 포기하거나 출시했습니다; 지아 유에 팅의 응답 패밀리 큰 주장을 마이크로 소프트가 더 이상 Visual Basic의 개발을 계속 | 괴짜 헤드 라인

US $ 7.558 억 거래! 미국 최대의 세대 밀리미터 파 주파수 경매

초경량 중국어 OCR, 세로 텍스트 인식, ncnn 추론에 대한 지원은 전체 모델은 17M입니다

해커는 육일 싸움!

기사 봄 부팅 서비스 모니터링, 건강 검진, 스레드 정보, JVM 힙 정보, 통계 수집, 작업을 모니터!

3 "비둘기"로, 번개 네트워크 메시징 모드를 암호화 변경하는 방법을 알려줍니다!

당신은 내가 즐겨 찾기로 심각하게, 모든 점에서 보면

출시 1838 원저 · 원 찬양 40000 + · 조회수 16,590,000을 +

추천

출처blog.csdn.net/csdnnews/article/details/104912592