docker端口映射语法

问题描述 投票:1回答:2

我是docker的新手,我对以下命令选项对我遇到的命令的具体做法感到有些困惑。

 --name : appname is the name of the image?
 -t : Run in terminal?
 -d : run as daemon?
 -p : for somebody outside the container to talk to port 9090 they have to connect on port 9000?
 Same for port 15501 but it is a udp port?    
 appname2: name assigned to running image?

 docker run -t --name=appname -p 9090:9000 -p 15501:15501/udp -d appname2
docker port
2个回答
3
投票
 docker run -t --name=appname -p 9090:9000 -p 15501:15501/udp -d appname2

问: - name:appname是图片的名称?

不。它是您正在创建的容器的名称(可选)。

--name string           Assign a name to the container

问:-t:在终端运行?

-t, --tty             Allocate a pseudo-TTY

问:-d:作为守护进程运行?

有点。这意味着您要运行与终端分离的容器。

-d, --detach          Run container in background and print container ID

问:-p:对于容器外的某人与端口9090通信,他们必须在端口9000上连接?

9090:9000的意思是:在主机上端口9090绑定到容器上的9000端口。要与集装箱码头交谈,外面的人应该与9090交谈。

-p, --publish list       Publish a container's port(s) to the host (default [])

问:端口15501也一样,但它是一个udp端口?

对。


问:appname2:分配给正在运行的图像的名称?

这是您正在运行的图像。容器基于它的顶部。


奖金!你可以在这里找到所有这些信息:docker help run

奖金2!亲自尝试一下:

docker run -d -it --name my-container alpine sh
docker inspect my-container
# See all this funny output. It's all about the container that you've created

1
投票

来自https://docs.docker.com/engine/reference/run/

-d旗帜意味着独立。运行docker容器时,可以在前台运行容器,也可以在后台运行容器。如何运行容器的选择取决于您的使用案例。例如,如果您运行具有某些功能的OS容器,您可能希望在前台运行容器以使用此功能。但是,如果您运行数据库服务器,则可能需要在后台运行它。

使用时,-p标志将所有公开的端口发布到主机接口。例如,如果您在容器中运行数据库服务器,该容器有一些暴露的端口,并且您希望从远处与服务器通信,则可能需要将容器内的端口映射到主机上的单个或多个端口。系统。这样当你连接到主机上的端口时,你就连接到在它内部运行的docker服务器(我希望这很清楚)。映射格式如下:

ip:hostPort:contain`enter code here`erPort | ip::containerPort | hostPort:containerPort | containerPort

--name标志为运行容器提供了一个很好的名称。如果不使用,它将生成一个名称。例如,如果您以分离模式执行容器,然后您想使用attach命令进入容器,则可以使用它。

-t标志为容器分配文本控制台。

appname2是泊坞窗图像的名称。

© www.soinside.com 2019 - 2024. All rights reserved.