1、如何解決docker宿主機無法訪問容器中的服務
docker跟宿主機交互的是通過原生網路實現的。
當docker進程啟動之後,它會配置一個虛擬的網橋叫docker0在宿主機上。這個介面允許docker去分配虛擬的子網給即將啟動的容器們。這個網橋在容器內的網路和宿主機網路之間將作為介面的主節點。
docker容器啟動後,將創建一個新的虛擬介面並分配一個網橋子網內的ip地址。這個ip地址嵌在容器內網路中,用於提供容器網路到宿主機docker0網橋上的一個通道。docker自動配置iptables規則來放行並配置nat,連通宿主機上的docker0,就可以訪問宿主機的mysql數據文件了。
2、docker從容器中怎麼訪問宿主機
例如你的docker環境的虛擬IP是192.168.99.100,那麼宿主機同樣會託管一個和192.168.99.100同網段的虛擬IP,並且會是主IP:192.168.99.1,那麼就簡單了,在容器中訪問192.168.99.1這個地址就等於訪問宿主機。
注意,通過192.168.99.1訪問宿主機,等於換了一個ip,如果資料庫或中間件限制了本機訪問或者做了ip段限制,要記得添加192.168.99.1到白名單。
Docker容器運行的時候有 host 、 bridge 、 none 三種網路可供配置。默認是 bridge ,即橋接網路,以橋接模式連接到宿主機; host 是宿主網路,即與宿主機共用網路; none 則表示無網路,容器將無法聯網。
當容器使用 host 網路時,容器與宿主共用網路,這樣就能在容器中訪問宿主機網路,那麼容器的 localhost 就是宿主機的 localhost 。
(2)docker宿主機擴展資料
宿主機和容器通信原理的問題:
考慮重啟速度:在實際的運維過程中,部分場景下,會出現主機卡死,或者docker進程卡死, 這時,最快恢復業務的方法是重啟主機。
容器在主機重啟後,可以自動恢復,因此可以做到在1到2分鍾內快速恢復業務。這一點太重要了,物理機重啟由於需要做各種硬體檢測,重啟時間一般在5到10分鍾, 虛擬機重啟一般在1分鍾以內 , 物理機顯然無法滿足需求。
重建能力很重要:
容器平台經常需要更新操作系統,或者根據需要調整主機規格。
運行一段時間後,發現內存配置偏少了, 需要添加內存。這時候申請一台新的機器加入到集群中,將舊機器下線即可。
運行多年的 ubuntu 12.04 官方已經不再維護, 需要全量替換,工作量相當大。好的方法就是使用全新的伺服器替換舊伺服器。
當發生故障,主機無法恢復時, 直接申請新伺服器加入集群即可。
3、docker 里怎麼獲取宿主機ip
容器的ip每次啟動都會改變,知道容器ip沒什麼意義。
文件同步操作的話,為什麼不通過-v 掛載到宿主機呢?
docker exec CID ifconfig
如果容器有ifconfig的話
4、如何獲得Docker的宿主機的cpu佔用率?
這個情況,我也遇到過!首先可以用進程管理看看啥東東佔用了CPU,例如你用360安全衛士——功能大全——電腦優化——進程管理。其次可用360急救箱之類的查殺一下頑固病毒,然後再試試,希望對你有幫助。
5、Docker 宿主機的系統是否對容器使用的系統選擇有影響
們通過在在宿主機和容器里分別執行date命令來看下實際的情況。
在宿主機執行date命令的結果:
進入到容器里,再執行date命令的結果:
docker exec -it 《containerid》 /bin/sh
date
執行後的結果為:
從截圖來看,我們發現相差了8個小時。那麼如何解決這個問題呢?目前有兩種思路供參考。
創建容器的時候指定啟動參數,自動掛載localtime文件到容器內
docker run --name 《name》 -v /etc/localtime:/etc/localtime:ro ...
把時區設置加入到Dockerfile中
# Ubuntu
RUN echo 「Asia/shanghai」 》 /etc/timezone;
# CentOS
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
以上就是Docker容器和宿主機時間不同步的解決辦法,這個問題主要是由於Docker容器沒有設置時間導致的,因此用戶只需根據上面的介紹的方法進行設置即可。
6、docker 怎麼把宿主機的文件拷貝到運行的容器中
1.用-v掛載主機數據卷到容器內 [plain] view plaincopy docker run -v /path/to/hostdir:/mnt $container 在容器內拷貝 cp /mnt/sourcefile /path/to/destfile 2.直接在主機上拷貝到容器物理存儲系統 A. 獲取容器名稱或者id : [plain] view plai...
7、docker 容器系統必須和宿主機一樣嗎
完全不需要,docker只要求宿主機操作系統的內核在3.10以上,系統為64位。
8、docker 宿主機 是什麼意思,不安裝宿主機好像也可以運行容器
Docker 宿主機的系統是否對容器使用的系統選擇有影響?
容器
docker
cloverzrg 2016年09月20日提問
關注 3 關注
收藏 0 收藏,876 瀏覽
問題對人有幫助,內容完整,我也想知道答案0問題沒有實際價值,缺少關鍵內容,沒有改進餘地
例如,我宿主機使用的系統是ubuntu,那麼,我的容器是否也應該使用ubuntu的系統以達到更好的性能和減少宿主機的性能消耗?
已採納
Docker是基於linux內核製作的,所以選擇宿主機時要選擇支持Docker的系統,即:
Linux 3.8版本或更高。
Cgroups 和 namespaces 必須可用
而對於發行版來講,他們只不過是在一個linux內核中裝了各式各樣的不同的包而已,核心還是linux。
你可以理解為,有一塊大空地(系統硬體資源),改造成了地基(Linux內核),宿主機系統用一部分面積蓋了些房子(宿主機系統),你又開了一輛房車過來住(Docker)。只要地基允許(Linux內核允許),你根本不用擔心旁邊的房子是怎麼蓋的。當然房子要是塌了搞得水電煤都停了(宿主機死機),你的房車就也會受影響。
都可以用啊,沒什麼區別