真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

docker端口映射與容器的互訪-創(chuàng)新互聯(lián)

端口映射與容器關(guān)聯(lián)

docker除了通過網(wǎng)絡(luò)訪問外,還提供了兩個(gè)功能來滿足服務(wù)訪問的基本需求:一個(gè)是允許映射容器內(nèi)應(yīng)用的服務(wù)端口到本地宿主主機(jī);另一個(gè)是互聯(lián)機(jī)制實(shí)現(xiàn)多個(gè)容器間通過容器名來快速訪問。

站在用戶的角度思考問題,與客戶深入溝通,找到長沙縣網(wǎng)站設(shè)計(jì)與長沙縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋長沙縣地區(qū)。

端口映射容器訪問

1、從外部訪問容器應(yīng)用,從啟動容器的時(shí)候,如果不指定對應(yīng)參數(shù),在容器外部是無法通過網(wǎng)絡(luò)來訪問容器內(nèi)的網(wǎng)絡(luò)應(yīng)用和服務(wù)的。可以通過-P或-p參數(shù)來指定端口映射。
-P:會隨機(jī)映射一個(gè)49000~49900的端口到內(nèi)部容器開放的網(wǎng)絡(luò)端口

[root@docker01 ~]# docker run -d -P training/webapp python app.py
75b2c32292d290aa3004b5b6cbb49775cc6f360796736473978cc32a682fdad9
[root@docker01 ~]# docker ps -l
CONTAINER ID     IMAGE        COMMAND       CREATED       STATUS        PORTS           NAMES
75b2c32292d2     training/webapp   "python app.py"   3 seconds ago    Up 2 seconds     0.0.0.0:32770->5000/tcp  musing_carson

查看應(yīng)用的信息

[root@docker01 ~]# docker logs -f musing_carson
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

2、映射所有接口地址,使用HostPort:ContainerPort吧本地的5000端口映射到容器的5000端口

[root@docker01 ~]# docker run -d -p 5000:5000 training/webapp python app.py
6368e0f567714ad90d2b20ff71afb2231e404b35639055a665cc3715a85f010a

或使用連續(xù)的-p綁定多個(gè)端口

[root@docker01 ~]# docker run -d -p 5000:5000 -p3000:80 training/webapp python app.py
80bfe8e1f7fd53099e3f350c5efd1160a7247d065233965cc2bc2130e2fdcbb2

3、映射到指定地址的指定端口,使用IP:HostPort:ContainerPort格式指定映射使用一個(gè)特定地址。

[root@docker01 ~]# docker run -d -p 10.10.17.199:5000:5000 training/webapp python app.py
ac228c0f2334a59856d9993e6a3eb652b50eb08ec41cedff87b331aa8d5d5f86
[root@docker01 ~]# docker ps -l
CONTAINER ID     IMAGE        COMMAND       CREATED       STATUS        PORTS             NAMES
ac228c0f2334     training/webapp   "python app.py"   5 seconds ago    Up 5 seconds     10.10.17.199:5000->5000/tcp  eager_noether

4、映射到指定地址的任意端口,使用IP::ContainerPort綁定localhost的任意端口到容器的5000端口,本地主機(jī)會自動分配一個(gè)端口

[root@docker01 ~]# docker run -d -p 127.0.0.1::5000 training/webapp python app.py
e72dec38ae77c113418156c4ad50b601fe31d0a38b4b8f995aabdcfcc510fdcc

使用UDP標(biāo)記來指定udp端口

[root@docker01 ~]# docker run -d -p 127.0.0.1:5001:5001/udp training/webapp python app.py
581ff1531c6b604c1b66ece82c87529a02c8da0b7b19e98bd336122c151b524f

5、查看映射端口配置,使用docker port來查看映射的端口配置

[root@docker01 ~]# docker port laughing_faraday 5000
127.0.0.1:32768

互聯(lián)機(jī)制便捷互訪

容器的互聯(lián)是一種讓多個(gè)容器中的應(yīng)用進(jìn)行快捷交互的方式,它會在源和接收容器之間創(chuàng)建連接關(guān)系,接收容器可以通過容器名快速訪問到源容器,而不用指定具體的IP地址。
1、自定義容器命名,連接系統(tǒng)依據(jù)容器的名稱來執(zhí)行。首先需要一個(gè)好記的容器命名,雖然不指定系統(tǒng)會默認(rèn)分配一個(gè),但是指定的好處在于:名稱好記,基于應(yīng)用來取名如web。需要連接其他容器時(shí),也可以使用容器名而不用改變。

[root@docker01 ~]# docker run -d -P --name web training/webapp python app.py
6ae6d11614f99762a519d55beb8b38f3fbff667af34be90b33d6a11477b8d99a
[root@docker01 ~]# docker ps -l
CONTAINER ID     IMAGE        COMMAND       CREATED       STATUS        PORTS           NAMES
6ae6d11614f9     training/webapp   "python app.py"   7 seconds ago    Up 6 seconds     0.0.0.0:32771->5000/tcp  web

2、容器互聯(lián),使用--link參數(shù)可以讓容器之間安全的進(jìn)行交互
創(chuàng)建一個(gè)新的數(shù)據(jù)庫容器

[root@docker01 ~]# docker run -d --name db training/postgres
Unable to find image 'training/postgres:latest' locally
latest: Pulling from training/postgres
Image docker.io/training/postgres:latest uses outdated schema1 manifest format. Please upgrade to atibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
a3ed95caeb02: Pull complete 
6e71c809542e: Pull complete 
2978d9af87ba: Pull complete 
e1bca35b062f: Pull complete 
500b6decf741: Pull complete 
74b14ef2151f: Pull complete 
7afd5ed3826e: Pull complete 
3c69bb244f5e: Pull complete 
d86f9ec5aedf: Pull complete 
010fabf20157: Pull complete 
Digest: sha256:a945dc6dcfbc8d009c3d972931608344b76c2870ce796da00a827bd50791907e
Status: Downloaded newer image for training/postgres:latest
67b752f9c5d6f19f2811674be780673b5475c845be6f43d9b15df139ff01c0fd

刪除之前的web容器,然后創(chuàng)建一個(gè)新的web容器,把他連接到db容器

[root@docker01 ~]# docker rm -f web
web
[root@docker01 ~]# docker run -d -P --name web --link db:db training/webapp python app.py
de3f340d554dd01789859d6dc0fc3a0bb406e3111ca60e27f78da208def08dca

--link參數(shù)的格式為--link name:alias,其中name是要鏈接的容器名稱,alias是別名。
使用docker ps查看容器的鏈接

[root@docker01 ~]# docker ps
CONTAINER ID     IMAGE        COMMAND          CREATED       STATUS        PORTS           NAMES
de3f340d554d     training/webapp   "python app.py"      4 minutes ago    Up 4 minutes     0.0.0.0:32772->5000/tcp  web
67b752f9c5d6     training/postgres  "su postgres -c '/us…"  13 minutes ago    Up 13 minutes    5432/tcp          db

相當(dāng)于在兩個(gè)容器之間創(chuàng)建了一個(gè)虛擬通道,而且不用映射他們的端口到宿主機(jī)上,在啟動db容器的時(shí)候沒有使用-p或-P標(biāo)記,避免了暴露數(shù)據(jù)庫服務(wù)端到外部網(wǎng)絡(luò)上。
docker通過兩種方式為容器公開連接信息
#更新環(huán)境變量
#更新/etc/hosts文件
使用env命令來查看web容器的環(huán)境變量:

[root@docker01 ~]# docker run --rm --name web2 --link db:db training/webapp env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=2ff63f7eb1d2
DB_PORT=tcp://172.17.0.3:5432
DB_PORT_5432_TCP=tcp://172.17.0.3:5432
DB_PORT_5432_TCP_ADDR=172.17.0.3
DB_PORT_5432_TCP_PORT=5432
DB_PORT_5432_TCP_PROTO=tcp
DB_NAME=/web2/db
DB_ENV_PG_VERSION=9.3
HOME=/root

除了環(huán)境變量docker還添加了host信息到父容器的/etc/hosts中

[root@docker01 ~]# docker run -t -i --rm --link db:db training/webapp /bin/bash
root@8ed896541b8d:/opt/webapp# cat /etc/hosts
127.0.0.1  localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.3  db 67b752f9c5d6
172.17.0.4  8ed896541b8d
root@8ed896541b8d:/opt/webapp# ping db
PING db (172.17.0.3) 56(84) bytes of data.
64 bytes from db (172.17.0.3): icmp_seq=1 ttl=64 time=0.239 ms
64 bytes from db (172.17.0.3): icmp_seq=2 ttl=64 time=0.154 ms
64 bytes from db (172.17.0.3): icmp_seq=3 ttl=64 time=0.110 ms
64 bytes from db (172.17.0.3): icmp_seq=4 ttl=64 time=0.111 ms
^C
--- db ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.110/0.153/0.239/0.053 ms

用戶可以鏈接多個(gè)子容器到父容器,比如可以鏈接多個(gè)web到同一個(gè)db容器上。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)頁標(biāo)題:docker端口映射與容器的互訪-創(chuàng)新互聯(lián)
鏈接地址:http://weahome.cn/article/gjjsg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部