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過程中的總結,我也會做到盡量寫出只要是高中畢業就能看懂...