docker端口Map语法

0g0grzrc  于 2023-03-29  发布在  Docker
关注(0)|答案(3)|浏览(109)

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

inkz8wg91#

docker run -t --name=appname -p 9090:9000 -p 15501:15501/udp -d appname2

Q:--name:appname是图像的名称吗?
不是。它是您正在创建的容器的名称(可选)。

--name string           Assign a name to the container

Q:-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端口?
好的。
Q: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
ee7vknir

ee7vknir2#

https://docs.docker.com/engine/reference/run/开始
-d标志表示分离。当你运行一个docker容器时,你可以在前台运行一个容器,也可以在后台运行它。如何运行你的容器的选择实际上取决于你的用例。例如,如果你运行一个具有某些功能的OS容器,为了使用这个功能,你可能希望在前台运行容器。2但是如果你运行一个数据库服务器,你可能希望在后台运行它。
使用-p标志时,会将所有暴露的端口发布到主机接口。例如,如果您在一个容器中运行一个DB服务器,该容器具有一些暴露的端口,并且您希望从远处与服务器通信,则可能需要将容器中的端口Map到主机系统上的单个或多个端口。这样,当您连接到主机上的端口时,连接到运行在其中的Docker服务器(我希望这一点很清楚)。Map格式如下:

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

--name标志为正在运行的容器提供了一个漂亮的名称。如果不使用,它将生成一个名称。例如,如果您以分离模式执行容器,然后您希望使用attach命令进入容器,则可以使用它。
-t标志为容器分配一个文本控制台。
appname2是Docker镜像的名称。

1tu0hz3e

1tu0hz3e3#

对于其他想要快速记住docker的实际端口Map语法的人来说:

docker run -p$PORT_ON_HOST:$PORT_IN_CONTAINER my_container

相关问题