1. 程式人生 > >9、CentOS7 安裝Docker之擴充套件(通過埠連線容器)

9、CentOS7 安裝Docker之擴充套件(通過埠連線容器)

通過埠連線容器

 

Docker容器從一開始就設計用來執行服務。在大多數情況下,會是一種HTTP服務或其它。其中很大一部分是通過瀏覽器訪問的Web服務。
這會導致一個問題。如果你有多個執行在它們內部環境的80埠上的Docker容器,它們不能都通過你機器上的80埠訪問。下一次技術點將介紹如何通過從你的容器暴露和對映一個埠來處理這個常見的情景。

問題

你想通過你機器上的埠使你的容器能夠得到訪問。

方法

使用docker的-p引數來對映容器的埠到你的主機。

討論

在這個示例中我們準備用tutum-wordpress映象。假設你要在主機上執行兩個容器來建立不同的部落格。因為很多人想要這樣做,有人已經準備好一個映象讓其他人能夠獲取和啟動。你可以使用docker pull命令來得到外部位置的映象。預設下,映象會從docker hub去下載。

$ docker pull tutum/wordpress

執行第一個部落格,執行如下命令:

$ docker run -d -p 10001:80 --name blog1 tutum/wordpress

docker run命令以守護程序(-d),引數-p執行容器。它標識要對映主機的10001埠到容器的80埠,並設定了一個容器名稱用來識別它(–nameblog1tutum/wordpress)。
你可以用同樣的方法建立第二個部落格:

$ docker run -d -p 10002:80 --name blog2 tutum/wordpress

如果你現在執行這個命令,

$ docker ps -a | grep blog

你會看到兩個部落格視窗列出,有它們的埠對映,類似如下:
9afb95ad3617 tutum/wordpress:latest “/run.sh”
➥ 9 seconds ago Up 9 seconds
3306/tcp, 0.0.0.0:10001->80/tcp blog1 31ddc8a7a2fd tutum/wordpress:latest
➥ “/run.sh” 17 seconds ago Up 16 seconds 3306/tcp, 0.0.0.0:10002->80/tcp blog2
你可以在瀏覽器中通過http://localhost:10001和http://localhost:10002訪問這兩個部落格容器。
完成後要刪除這些容器(假設你不想保留):

$ docker rm -f blog1 blog2

如果需要,你現在應該能夠通過自己管理埠對映來執行多個相同的映象來提供不同的服務了。


轉載地址:https://www.centos.bz/2016/11/using-port-to-connect-docker-container/