3 回答

TA貢獻1802條經驗 獲得超5個贊
1,在容器外部,物理機上,可以用docker inspect查看或者,docker inspect container。
2,如果在容器內部。可以用 ps -fe 查看。其中1號進程就是啟動命令。
3,Docker會在隔離的容器中運行進程。當運行docker run命令時,Docker會啟動一個進程,并為這個進程分配其獨占的文件系統、網絡資源和以此進程為根進程的進程組。在容器啟動時,鏡像可能已經定義了要運行的二進制文件、暴露的網絡端口等,但是用戶可以通過docker run命令重新定義(譯者注:docker run可以控制一個容器運行時的行為,它可以覆蓋docker build在構建鏡像時的一些默認配置),這也是為什么run命令相比于其它命令有如此多的參數的原因。4,命令格式
5,最基本的docker run命令的格式如下:$ sudo docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
6,如果需要查看[OPTIONS]的詳細使用說明,請參考Docker關于OPTIONS的章節。這里僅簡要介紹Run所使用到的參數。OPTIONS總起來說可以分為兩類:
設置運行方式:
決定容器的運行方式,前臺執行還是后臺執行;
設置containerID;
設置網絡參數;
設置容器的CPU和內存參數;
設置權限和LXC參數;
設置鏡像的默認資源,也就是說用戶可以使用該命令來覆蓋在鏡像構建時的一些默認配置。
7,docker run [OPTIONS]可以讓用戶完全控制容器的生命周期,并允許用戶覆蓋執行docker build時所設定的參數,甚至也可以修改本身由Docker所控制的內核級參數。

TA貢獻1982條經驗 獲得超2個贊
在使用weave之前,你需要在所有宿主機上安裝Docker環境,參考這些教程,在Ubuntu或CentOS/Fedora發行版中安裝Docker。Docker環境部署完成后,使用下面的命令安裝weave:$wget/zettio/weave/releases/download/latest_release/weave$chmoda+xweave$sudocpweave/usr/local/bin注意你的PATH環境變量要包含/usr/local/bin這個路徑,請在/etc/profile文件中加入一行(LCTT譯注:要使環境變量生效,你需要執行這個命令:source/etc/profile):exportPATH="$PATH:/usr/local/bin"在每臺宿主機上重復上面的操作。Weave在TCP和UDP上都使用6783端口,如果你的系統開啟了防火墻,請確保這兩個端口不會被防火墻擋住。在每臺宿主機上啟動Weave路由器當你想要讓處于在不同宿主機上的容器能夠互相通信,第一步要做的就是在每臺宿主機上啟動weave路由器。第一臺宿主機,運行下面的命令,就會創建并開啟一個weave路由器容器(LCTT譯注:前面說過了,weave路由器也是一個容器):$sudoweavelaunch第一次運行這個命令的時候,它會下載一個weave鏡像,這會花一些時間。下載完成后就會自動運行這個鏡像。成功啟動后,終端會輸出這個weave路由器的ID號。下面的命令用于查看路由器狀態:$sudoweavestatus第一個weave路由器就緒了,目前為止整個peer對等網絡中只有一個peer成員。你也可以使用docker的命令來查看weave路由器的狀態:$dockerps第二臺宿主機部署步驟稍微有點不同,我們需要為這臺宿主機的weave路由器指定第一臺宿主機的IP地址,命令如下:$sudoweavelaunch當你查看路由器狀態,你會看到兩個peer成員:當前宿主機和第一個宿主機。當你開啟路由器,這個peer成員列表會更長。當你新開一個路由器時,要指定前一個宿主機的IP地址,請注意不是第一個宿主機的IP地址(LCTT譯注:鏈狀結構)。現在你已經有了一個weave網絡了,它由位于不同宿主機的weave路由器組成。把不同宿主機上的容器互聯起來接下來要做的就是在不同宿主機上開啟Docker容器,并使用虛擬網絡將它們互聯起來。假設我們創建一個私有網絡10.0.0.0/24來互聯Docker容器,并為這些容器隨機分配IP地址。如果你想新建一個能加入weave網絡的容器,你就需要使用weave命令來創建,而不是docker命令。原因是weave命令內部會調用docker命令來新建容器然后為它設置網絡。下面的命令是在宿主機hostA上建立一個Ubuntu容器,然后將它放到10.0.0.0/24網絡中,分配的IP地址為10.0.0.1:hostA:~$sudoweaverun10.0.0.1/24-t-iubuntu成功運行后,終端會顯示出容器的ID號。你可以使用這個ID來訪問這個容器:hostA:~$dockerattach在宿主機hostB上,也創建一個Ubuntu容器,IP地址為10.0.0.2:hostB:~$sudoweaverun10.0.0.2/24-t-iubuntu訪問下這個容器的控制臺:hostB:~$dockerattach這兩個容器能夠互相ping通,你可以通過容器的控制臺檢查一下。如果你檢查一下每個容器的網絡配置,你會發現有一塊名為“ethwe”的網卡,你分配給容器的IP地址出現在它們那里(比如這里分別是10.0.0.1和10.0.0.2)。Weave的其他高級用法weave提供了一些非常巧妙的特性,我在這里作下簡單的介紹。應用分離使用weave,你可以創建多個虛擬網絡,并為每個網絡設置不同的應用。比如你可以為一群容器創建10.0.0.0/24網絡,為另一群容器創建10.10.0.0/24網絡,weave會自動幫你維護這些網絡,并將這兩個網絡互相隔離。另外,你可以靈活地將一個容器從一個網絡移到另一個網絡而不需要重啟容器。舉個例子:首先開啟一個容器,運行在10.0.0.0/24網絡上:$sudoweaverun10.0.0.2/24-t-iubuntu然后讓它脫離這個網絡:$sudoweavedetach10.0.0.2/24最后將它加入到10.10.0.0/24網絡中:$sudoweaveattach10.10.0.2/24現在這個容器可以與10.10.0.0/24網絡上的其它容器進行通信了。這在當你創建一個容器而網絡信息還不確定時就很有幫助了。將weave網絡與宿主機網絡整合起來有時候你想讓虛擬網絡中的容器能訪問物理主機的網絡。或者相反,宿主機需要訪問容器。為滿足這個功能,weave允許虛擬網絡與宿主機網絡整合。舉個例子,在宿主機hostA上一個容器運行在10.0.0.0/24中,運行使用下面的命令:hostA:~$sudoweaveexpose10.0.0.100/24這個命令把IP地址10.0.0.100分配給宿主機hostA,這樣一來宿主機hostA也連到了10.0.0.0/24網絡上了。顯然,你在為宿主機選擇IP地址的時候,需要選一個沒有被其他容器使用的地址?,F在hostA就可以訪問10.0.0.0/24上的所有容器了,不管這些容器是否位于hostA上。
- 3 回答
- 0 關注
- 822 瀏覽
添加回答
舉報