Docker入門之六埠對映與容器互聯

2021-09-08 13:35:54 字數 1455 閱讀 2698

一、埠對映

在之前的部落格搭建私有倉庫時用到這樣一句:docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry來run乙個倉庫,其中可以看到-p 5000:5000,它的作用就是用來進行埠對映。那為什麼需要埠對映呢?其實在啟動容器時,如果不配置宿主機器與虛擬機器的埠對映,外部程式是無法訪問虛擬機器的,因為沒有埠,所以需要進行埠對映。

支援的格式有三種:比較常用的是第三種,因為這樣沒有對ip進行限制,移植也方便。

如:127.0.0.1:5000:5000,對映本機的5000埠到虛擬機器的5000埠。 

如:127.0.0.1::5000,對映本機的5000埠到虛擬機器的5000埠。 

hostport:containerport:對映本機的指定埠到虛擬機器的指定埠。(常用) 

如:5000:5000,對映本機的5000埠到虛擬機器的5000埠

對映完之後我們可以通過ps來進行檢視容器的對映情況:

也可以使用port命令來檢視對映情況,下面是先通過help來檢視port的語法和格式。然後檢視了容器modest_payne的埠對映情況。最後要說的是可以多次使用-p來繫結多個埠。

二、容器互聯

在實際應用中往往需要多個容器互動,比如乙個資料庫容器來提供db服務,多個應用容器來部署應用,使用埠訪問就會暴露埠,這樣不太安全。有沒有方法讓容器互聯呢?答案當然是有了。容器互聯的方法有多種方式,今天主要學習link,但link是只針對單宿主主機的。

1.啟動mysql server

這裡run了乙個mysql,容器名mysql,123為資料庫的root密碼。

2.使用--link關聯

兩個容器互聯相當於在它們之間建立了乙個虛擬通道,而且不用對映它們的埠到宿主主機上。通過兩種方式為容器公開連線資訊:

1.更新環境變數

2.更新/etc/hosts檔案

Docker入門之六埠對映與容器互聯

一 埠對映 在之前的部落格搭建私有倉庫時用到這樣一句 docker run d p 5000 5000 v opt data registry tmp registry registry來run乙個倉庫,其中可以看到 p 5000 5000,它的作用就是用來進行埠對映。那為什麼需要埠對映呢?其實在啟...

docker 埠對映與容器互聯

在啟動容器時,如果不指定引數,外部網路無法訪問容器。當容器執行一些網路應用,需要用外部網路訪問,可以使用 p或 p引數指定對映埠。使用docker port來檢視埠情況。互聯系統基於容器名字,所以要合理定義容器的名字。建立容器的時候使用 name來指定名字。注意 容器名字唯一 docker run ...

Docker 埠對映與容器互聯

在實踐中,經常會碰到需要多個服務元件容器共同協作的情況,這往往需要多個容器之間能夠互相訪問到對方的服務。docker 除了通過網路訪間外,還提供了兩個很方便的功能來滿足服務訪問的基本需求 乙個是允許對映容器內應用的服務埠到本地宿主主機 另 乙個是互聯機制實現多個容器間通過容器名來快速訪問。在啟動容器...