您的位置:

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用户密码。