[英]docker port mapping syntax
我是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
問:--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
從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
是appname2
的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.