2017-06-14 93 views
1

我是碼頭工人,我對以下命令選項專門爲我遇到的命令做了些什麼感到困惑。碼頭端口映射語法

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

回答

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:在容器外有人說話了口,他們必須在端口9000連接9090?

9090:9000指:綁定到端口9000在容器上的主機上端口9090。交談的集裝箱港口外面有人先跟9090

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

問:同爲端口15501,但它是一個UDP端口?

沒錯。


問:appname2:名稱分配給運行中的形象?

這是您正在運行的圖像。容器是基於它的頂部。


獎勵!你可以在這裏找到所有這些信息:docker help run

Bonus 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標誌在使用時會將所有暴露的端口發佈到主機接口。例如,如果您在一個容器中運行一個DB服務器,該容器有一些暴露的端口,並且您希望從遠處與服務器通信,您可能希望將容器內的端口映射到主機上的一個或多個選定端口系統。通過這種方式,當你連接到主機上的端口時,你連接到它內部運行的docker服務器(我希望這很明顯)。映射格式如下:

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

--name標誌給人的運行容器一個好聽的名字。如果不使用,它會生成一個名稱。例如,如果您以分離模式執行容器,然後您想使用attach命令進入容器,則可以使用它。

-t標誌爲容器分配一個文本控制檯。

appname2是泊塢窗圖像的名稱。