1. 程式人生 > >Docker如何通過埠來連線一個容器

Docker如何通過埠來連線一個容器

Docker容器的連線

1.網路埠對映

我們建立一個python應用的容器

# docker run -d -P training/webapp python app.py

這裡寫圖片描述

我們使用 -P 引數建立一個容器,使用 docker ps 來看到埠5000繫結主機埠32768

這裡寫圖片描述

我們也可以使用 -p 標識來指定容器埠繫結到主機埠。

兩種方式的區別是:

    -P :是容器內部埠隨機對映到主機的高階口。

    -p : 是容器內部埠繫結到指定的主機埠。

………………………………………………………………………………………………………………………………………………………………………

# docker run -d -p 5000:5000 training/webapp python app.py

這裡寫圖片描述

另外,我們可以指定容器繫結的網路地址,比如繫結127.0.0.1

# docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py

這裡寫圖片描述

這樣我們就可以通過訪問127.0.0.1:5001來訪問容器的5000埠

容器預設都是繫結 tcp 埠,如果要繫結 UDP 埠,可以在埠後面加上 /udp

# docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

這裡寫圖片描述

docker port <images id> [port]

命令可以讓我們快捷地檢視埠的繫結情況

docker port ce206e3c0ae6 5000

這裡寫圖片描述

現在我們把其他容器都關掉,開啟一個新的nginx容器

# docker run -d -p 5000:80 --name web111 nginx

這裡寫圖片描述

我們把容器的80埠轉發到本地的5000埠,然後在外部進行訪問
這裡寫圖片描述
可以看見我們是可以訪問成功的,說明埠轉發過來了

2.Docker容器連線

埠對映並不是唯一把 docker 連線到另一個容器的方法。

docker有一個連線系統允許將多個容器連線在一起,共享連線資訊。

docker連線會建立一個父子關係,其中父容器可以看到子容器的資訊。

3.容器命名

我們建立一個容器的時候,docker會自動對它進行命名。但我們也可以使用–name標識來命名容器

docker run -d -P --name Peithon training/webapp python app.py

這裡寫圖片描述