1. 程式人生 > >Docker 網路之埠繫結

Docker 網路之埠繫結

外部訪問容器

容器中可以執行一些網路應用,要讓外部也可以訪問這些應用,可以通過 -P 或 -p 引數來指定埠對映。

-P 標記時
Docker 會隨機對映一個 49000~49900 的埠到內部容器開放的網路埠。

-p 標記時
則可以指定要對映的埠,並且,在一個指定埠上只可以繫結一個容器。支援的格式有
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort

對映所有介面地址

使用 hostPort:containerPort 格式本地的 5000 埠對映到容器的 5000 埠

$ sudo docker run -d -p 5000:5000 training/webapp python app.py

此時預設會繫結本地所有介面上的所有地址。

對映到指定地址的指定埠

可以使用 ip:hostPort:containerPort 格式指定對映使用一個特定地址,比如 localhost 地址 127.0.0.1

$ sudo docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

對映到指定地址的任意埠

使用 ip::containerPort 繫結 localhost 的任意埠到容器的 5000 埠,本地主機會自動分配一個埠

$ sudo docker run -d -p 127.0.0.1::5000 training/webapp python app.py
#還可以使用 udp 標記來指定 udp 埠
$ sudo docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

檢視對映埠配置

使用 docker port 來檢視當前對映的埠配置,也可以檢視到繫結的地址

$ docker port <container> 

注意:
容器有自己的內部網路和 ip 地址(使用 docker inspect 可以獲取所有的變數,Docker 還可以有一個可變的網路配置。)

-p 標記可以多次使用來繫結多個埠,例如

$ sudo docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py

相關推薦

Docker 網路

外部訪問容器 容器中可以執行一些網路應用,要讓外部也可以訪問這些應用,可以通過 -P 或 -p 引數來指定埠對映。 -P 標記時 Docker 會隨機對映一個 49000~49900 的埠到內部容器開放的網路埠。 -p

dpdkCPU

Linux對執行緒的親和性是有支援的,在Linux核心中,所有執行緒都有一個相關的資料結構,稱為task_count,這個結構中和親和性有關的是cpus_allowed位掩碼,這個位掩碼由n位組成,n程式碼邏輯核心的個數。 Linux核心API提供了一些方法,讓使用者可以修改位掩碼或者檢視當前的

android簡訊小程式CursorAdapterListView

同步查詢繫結: mListView = findViewById(R.id.id_containers); //定義uri mALL_conversation_uri = Telephony.Threads.CONTENT_URI.buildUpon().appendQueryParame

WPF---資料PasswordBox(八)

一、概述 眾所周知,繫結的源既可以是依賴屬性也可以是普通的CLR屬性,而繫結的目標只能是依賴屬性。 控制元件PasswordBox的Password屬性不是依賴屬性,不可以作為繫結的目標與後臺資料進行繫結,而在MVVM模式中,前臺和後臺的繫結是經常需要的,為了達到這種目的,我們可以藉助附加屬性來實現Pas

Vue起步事件

1.點選、雙擊、滑鼠事件 html:我們可以通過v-on:和@兩種方法繫結事件 如: <button v-on:click="add(1)">加一歲</button> <button @dblclick="add(10)">加兩歲</butt

NGINX原理 CPU CPU親和性

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

微信小程式事件冒泡

事件繫結格式: bind+evnetType catch+eventType 假如存在三個view盒子,分別為outer(bindtap=""),middle(catchtap),inner(bindtap); 1:當點選inner盒子的時候,inner,middle盒子繫結的函式會

前端開發vue資料

  2.1. 什麼是雙向繫結? Vue框架很核心的功能就是雙向的資料繫結。 雙向是指:HTML標籤資料 繫結到 Vue物件,另外反方向資料也是繫結的。通俗點說就是,Vue物件的改變會直接影響到HTML的標籤的變化,而且標籤的變化也會反過來影響Vue物件的屬性的變化。 這樣一來

java eclipse tomcat 錯誤 啟動兩個專案後關閉再啟動出錯

使用dubbox需要啟動兩個專案,     關閉之後再啟動時候遇到這個問題:java.net.BindException: Address already in use: JVM_Bind,一直不能在eclipse中開啟這個專案。    後來發現原

Docker網路overlay、macvlan、fannel、weave、calico

由於內容較多,可以通過此連結去訪問大神的文章: 跨主機網路概述: https://blog.csdn.net/CloudMan6/article/details/76383702 一文搞懂各種Docker網路: https://blog.csdn.net/CloudMan6/ar

Springmvc引數

spring引數繫結過程 概念:從客戶端請求key/value資料,經過引數繫結,將key/value資料繫結到controller方法形參上。 springmvc中,接受頁面提交的資料是通過方法形參來接收,而不是在controller類定義成員變數來接收 第一步:

樹莓派USB

在做樹莓派相關的工程時,由於Linux是按照插入順序對裝置進行編號,常遇到插拔不同USB裝置(如串列埠、攝像頭、感測器等外設)樹莓派識別埠號跳躍的問題,例如原本識別為/dev/video0,重插後識別為/dev/video2這種尷尬的問題。這使得在程式中固定埠號讀取十分不

(二)SpringBoot初學者引數

1.新建 web 工程 2.檔案目錄 3.建立Person類,新建applapplication.yml Person類: package com.atguigu.springboot01helloworld.bean; import jav

SpringMvc資料流程

在SpringMvc中會將來自web頁面的請求和響應資料與controller中對應的處理方法的入參進行繫結,即資料繫結。流程如下:      -1.SpringMvc主框架將ServletRequest物件及目標方法的入參例項傳遞給WebDataBinderFacto

Vue2.x資料與實時查詢篩選排序資料

                        &nbs

Vue屬性和雙向資料

屬性繫結:v-bind:title,簡寫為::title 雙向資料繫結:v-model繫結content的值,也可以改變content的值 <div id="root"> <d

dojo事件驅動程式設計事件

什麼是事件驅動?   事件驅動程式設計是以事件為第一驅動的程式設計模型,模組被動等待通知(notification),行為取決於外來的突發事件,是事件驅動的,符合事件驅動式程式設計(Event-Driven Programming,簡稱EDP)的模式。   何謂事件?通俗地

結合apache和tomcat實現多域名、多

1、本機測試的話,要先配置主機頭系統:windowsxp     C:\WINDOWS\system32\drivers\etc\hosts檔案 新增     127.0.0.1       www.abc.com     127.0.0.1       www.efg.c

docker工具對映、容器互聯、封裝映象、啟動多個服務

1.埠對映 為什麼要埠對映? 在啟動容器時,如果不配置宿主機器與虛擬機器的埠對映,外部程式是無法訪問虛擬機器的, 因為沒有埠,所以需要進行埠對映。 埠對映的兩個關鍵詞: 埠對映有兩個關鍵詞-P -p 一個是大寫一個是小寫 通過run --help也可以看

Vue 2.3.4原始碼分析雙向原理

    要想實現雙向繫結需要做到兩點:1.如何監聽data物件是否改變;2.物件變化後如何去更新檢視    一、如何監聽data物件是否改變     在Vue監聽data物件是否改變主要通過defineReactive方法來做到的,就是利用Object.definePrope