docker端口映射语法

我是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 run -t --name=appname -p 9090:9000 -p 15501:15501/udp -d appname2 

问: – 名称:appname是图像的名称?

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

 --name string Assign a name to the container 

问:-t:运行在terminal?

 -t, --tty Allocate a pseudo-TTY 

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

有点。 这意味着你想运行从你的terminal分离的容器。

 -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:分配给正在运行的图像的名称?

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


奖金! 你可以在这里find所有这些信息: 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 

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

-d标志意味着分离。 在运行泊坞窗容器时,可以在前台运行容器,也可以在后台运行容器。 如何运行你的容器的select取决于你的用例。 例如,如果您运行具有某些function的OS容器,则可能需要在前台运行该容器才能使用此function。 但是,如果您运行数据库服务器,则可能需要在后台运行它。

-p标志在使用时会将所有暴露的端口发布到主机接口。 例如,如果您在容器中运行了一个DB服务器,而该容器有一些端口暴露,并且您希望从远处与服务器通信,则可能需要将容器内的端口映射到主机上的一个或多个选定端口系统。 这样,当你连接到你的主机上的端口,你连接到运行里面的docker服务器(我希望这是明确的)。 映射格式如下:

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

--name标志给正在运行的容器一个好名字。 如果不用,它会生成一个名字。 例如,如果您以分离模式执行容器,然后使用attach命令进入容器,则可以使用它。

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

appname2是泊坞窗图像的名称。