跟我一起學docker 七 網路

2021-09-11 14:47:06 字數 1589 閱讀 7007

1.容器對外服務

當容器內執行一些網路應用,要讓外部訪問這些應用時,可以通過 -p 或 -p 引數來指定埠對映。

使用 -p 對映時,docker會隨機對映乙個49000 ~49900 的埠至容器內部開放的埠:

docker run -d -p --namemysql mysql:5.6

通過docker ps可以看到埠對映關係。可以通過對映在宿主機的埠來訪問對應容器內的服務。

tag是mysql的版本號,這裡咱們選擇mysql5.6

對映到指定宿主機的埠:

docker run --name some-mysql -e mysql_root_password=my-secret-pw -d mysql:tag

-e 是環境變數的意思 執行容器內的環境變數設定mysql的密碼

容器裡面的mysql已經啟動了現在咱們為了對映埠的話刪除這個mysql容器

docker run -d -p 3306:3306 --name mysql mysql:5.6

外部訪問虛擬機器的3306直接對映到容器的3306連線到資料庫

docker run -d -p127.0.0.1:3306:3306 --name mysql mysql:5.6

docker run -d -p 127.0.0.1::3306 --name mysqlmysql:5.6

檢視對映埠配置:

docker port mysql 3306

2.容器間相互通訊

通過對映宿主機的埠實現容器的互聯。

容器的連線(link)除了埠對映外的另一種可以與容器中應用進行互動的方式。

使用 --link 引數可以讓容器之間安全的進行互動。

建立乙個資料庫容器:

docker run -d --namemysqldb mysql:5.6

建立乙個web容器並和資料庫容器建立連線:

上邊的mysql別名就類似dns解析的方式,我給這個容器起了個別名叫mysql,我就通過這個別名就可以找到對應的這個mysqldb容器

mysqldb容器和web容器建立互聯關係。

--link引數的格式為--link name:alias,其中name是要連線的容器名稱,alias是這個連線的別名。

可以使用docker ps(port欄位)來檢視容器的連線。

docker在兩個容器之間建立了安全隧道,而且不用對映它們的埠到宿主機上。在啟動mysqldb的時候並沒有使用-p和-p標記,從而避免的了暴露資料庫的埠到外部的網路上。

link就是容器直接互相通訊的

docker通過兩種方式為容器公開連線資訊:

1 環境變數:

使用env命令來檢視。

ex:docker run --rm --name test--link dblink:dblink ubuntu env

2 更新/etc/hosts檔案

檢視/etc/hosts檔案。

往期docker學習:

認識docker

核心概念和安裝

映象的常用操作

容器的基本操作

倉庫 資料管理

我們一起學網路 七) 網路層(路由選擇協議)

前面涉及到那麼多路由 分組的內容,現在終於到了正題,路由選擇協議 路由選擇協議的核心是路由演算法 路由選擇演算法可分為 靜態路由選擇策略 和 動態路由選擇策略 靜態路由選擇也叫 非自適應路由選擇 動態路由選擇也叫 自適應路由選擇 從名字就可以看出來,動態路由選擇比較複雜,但是能較好的適應各種網路情況...

跟我一起學攝影

咦 好巧!我也是攝影愛好者。咱們一起學習吧。或許你也有這樣的體驗,並茂的文章更能讓人快速進入學習狀態,更何況是攝影,必須有圖。下面是我彙總的資料,必須深入淺出,拒絕一切晦澀難懂。學習課本 1.佳能官網 能系統學習攝影知識,從入門 初級 中級 高階 高階。每個頁面講解乙個知識點,結合實際的拍攝效果,深...

跟我一起學python 跟我一起學人工智慧(一)

跟我一起學人工智慧 一 文 小步 系列第一講正式開課啦,課程全都是可以實操的乾貨,到後面ai演算法 python 可以結合做出乙個簡單的人工智慧應用 因本人也對ai領域涉足不久,如文章有不妥之處還請各位大神與我多多交流,此系列文章也屬於我學習ai過程中的總結,我也會做到盡量寫出只要是高中畢業就能看懂...