docker端口映射语法

时间:2017-06-14 18:02:14

标签: docker port

我是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

2 个答案:

答案 0 :(得分: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 :(得分: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是泊坞窗图片的名称。