Docker默認埠詳解

一、Docker默認埠映射

Docker容器可以向宿主機或其他容器暴露埠。默認情況下,容器內部的埠無法從外部訪問,需要使用埠映射來實現。由於Docker中有許多不同的網路驅動程序,因此埠映射的細節可能會有所不同。

要將Docker容器的埠映射到主機上,在運行容器時使用-P或-p選項。使用「-P」將隨機選擇主機埠,而使用「-p」可以指定主機埠,如下所示:

 docker run -d -p 5000:5000 image_name

此命令將容器的埠5000映射到主機的埠5000。

二、Docker埠映射理解

埠映射實際上是將容器內部的埠暴露給外部網路的過程。在容器內部運行的應用程序可能會監聽某個埠,而在容器外部的其他應用程序需要通過該埠與該應用程序進行通信。因此,埠映射是將容器內部埠與主機埠之間的連接建立起來的過程。

三、Docker默認埠號是多少

在Docker中,並沒有為每個容器自動分配默認埠號。應用程序需要在容器內部監聽埠,並在運行容器時明確指定埠映射。如果某個應用程序在Docker容器內部使用了默認埠,則該埠將在容器內部被佔用。

四、Docker埠

Docker埠是指Docker daemon所使用的埠。Docker daemon是Docker的核心組件,負責管理Docker容器和鏡像、實現容器之間的通信等。默認情況下,Docker daemon監聽Unix套接字/var/run/docker.sock和TCP埠2375。Unix套接字僅可通過主機上的本地進程訪問,因此默認情況下,Docker daemon使用TCP埠。

五、Docker默認埠是多少

默認情況下,Docker daemon使用TCP埠2375。如果您需要使用不同的埠,請在啟動Docker daemon時指定。要使用加密的Docker連接,請啟用自動證書管理功能,並使Docker daemon監聽安全埠2376。例如,您可以使用以下命令來運行Docker daemon:

$ sudo dockerd \
  --tlsverify \
  --tlscacert=ca.pem \
  --tlscert=server-cert.pem \
  --tlskey=server-key.pem \
  -H=0.0.0.0:2376

六、Docker Web默認埠

Docker Web默認埠是指Docker Web UI應用程序所使用的埠。但由於Docker已經不再維護其官方Web UI,推薦使用Docker第三方Web UI,如Portainer。對於Portainer,它可以綁定任何可用的埠,通過PUID和PGID(持久用戶ID和組ID)可以從宿主環境中載入用戶和群組。在運行Portainer容器時,指定映射埠:

$ docker run --detach \
  --restart always \
  --name portainer \
  --publish 9000:9000 \
  --volume /var/run/docker.sock:/var/run/docker.sock \
  portainer/portainer

七、Docker埠號

Docker容器可以使用任何空閑的埠號。但請注意,應用程序可能需要運行在特定的默認埠號上,而如果埠號被佔用,則可能會出現衝突。如果您需要使用特定的埠號,請將其指定為運行Docker容器的命令的一部分。例如:

docker run -d -p 80:8000 image_name

此命令將容器的埠8000映射到主機的埠80。

八、Docker默認佔用埠

在默認情況下,Docker並不佔用任何埠。然而,如果某個容器中運行的應用程序正在使用未經授權的埠,則可能會導致Docker daemon在嘗試打開另一個容器時出現埠衝突錯誤。因此,建議您在運行容器時指定埠映射,並確保容器內部的應用程序使用合法的埠。

九、Docker默認用戶名密碼

Docker並沒有默認的用戶名和密碼。相反,它依靠操作系統的用戶和組管理來為容器指定訪問憑據。在執行「docker run」命令時,Docker會向宿主機的用戶和組映射中查詢指定的PUID和PGID,以確定容器中運行的應用程序應以哪個用戶的身份運行。

如果您需要為Docker容器設置訪問憑據,可以在執行「docker run」命令時添加「-u」選項。例如:

$ docker run --detach \
  --env MYSQL_ROOT_PASSWORD=password \
  --publish 3306:3306 \
  --volume /my/own/datadir:/var/lib/mysql \
  --name mysql \
  --user 1000:1000 \
  mysql:latest

此命令將容器以UID 1000和GID 1000的身份運行,其中MYSQL_ROOT_PASSWORD環境變數指定了初始的MySQL root用戶密碼。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/206030.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-07 17:48
下一篇 2024-12-07 17:48

相關推薦

發表回復

登錄後才能評論