雲計算核心技術Docker教程:解決Windows下docker埠映射問題

2020-12-24 TechWeb

在Windows系統下安裝docker並嘗試在其中運行Nginx服務,在映射完畢之後在主機的瀏覽器中,打開localhost:port無法訪問對應的服務。

問題出現的原因:

因為docker是運行在Linux上的,在Windows中運行docker,實際上還是在Windows下先安裝了一個Linux環境,然後在這個系統中運行的docker。也就是說,服務中使用的localhost指的是這個Linux環境的地址,而不是我們的宿主環境Windows。

解決的辦法:

通過命令:

docker-machine ip default

# 其中,default 是docker-machine的name,可以通過docker-machine -ls 查看

找到這個Linux的ip地址,一般情況下這個地址是192.168.99.100,然後在Windows的瀏覽器中,輸入這個地址,加上服務的埠即可啟用了。

docker run --name nginx-test -p 8080:80 -d nginx

比如,首先運行一個docker 容器:

docker run --name nginx-test -p 8080:80 -d nginx

查看容器的ip,創建的機器名稱為test:

docker-machine ip test

最後在windows瀏覽器中測試結果:

http://192.168.99.101:8080

相關焦點

  • 雲計算核心技術Docker教程:Docker 守護進程dockerd的LCOW選項
    在Windows上,Docker守護程序支持單個鏡像層存儲驅動程序,具體取決於鏡像平臺:windowsfilter Windows鏡像以及 lcowWindows上的Linux容器。可以使用帶有--storage-opt標誌指定的選項來配置特定的存儲驅動程序 。
  • Dockerfile 最佳實踐
    這項技術叫作 cache busting(緩存破壞)。因此,你應該為你的應用程式使用常見的埠。例如,提供 Apache web 服務的鏡像應該使用 EXPOSE 80,而提供 MongoDB 服務的鏡像使用 EXPOSE 27017。對於外部訪問,用戶可以在執行 docker run 時使用一個標誌來指示如何將指定的埠映射到所選擇的埠。
  • Docker 基礎用法和命令幫助
    help                  docker command                  $ sudo docker   # docker 命令幫助Commands:attach    Attach to a running container                 # 當前 shell 下 attach 連接指定運行鏡像build     Build
  • 初探Docker的網絡模式
    從上面的示例可以看出,同一節點下的容器默認都是可以彼此交流噠~run -it --network overlay --name box4 sh然後我們在同一個overlay網絡下的容器中互相去ping對方,是可以連接噠~我們也可以利用overlay網絡去創建一個集群服務,使用docker swarm去管理我們的集群服務。
  • 利用雲伺服器搭建解鎖免費聽網易雲灰歌曲的代理-docker版
    註:本教程僅作為學習參考使用,請支持正版一、最近在GitHub上發現一個有趣的項目:UnblockNeteaseMusic,可以解鎖網易雲灰色歌曲,利用docker超簡單搭建。二、搭建步驟1、 yum install docker -y ###安裝docker2 、 systemctl start docker ####啟動docker3、systemctl enable docker #########默認開啟3、yum install python-pip ######安裝pip4、pip
  • 新手入門系列之-React / Vue 應用持續集成Docker 化
    /web/# 暴露容器內部訪問埠,根據項目變動EXPOSE 8080## 如果是Vue CLi,則換成 yarn serveCMD ["npm", "start"]是的,開發環境在Docker 部署,關鍵配置就那麼幾行。
  • 分享用Docker部署大桌子協同辦公平臺的一些經驗
    大家好我是小張,從上周一到這周一發帖比較少,主要是自己這周在自學Docker,確實Docker是個比較有技術含量的容器化技術,差不多花了三天時間啃理論知識,兩天的時間嘗試在各種平臺搭建Docker並配置好鏡像加速,其中也是各種報錯各種坑,好在慢慢查閱資料總算是把Docker的基本知識給啃下來了
  • Docker 的第二次死亡
    運維工程師一方面用 Kubernetes 中的 kubctl 命令、k8s API 來操作集群,一方面在單機用 docker 命令來管理鏡像、運行鏡像。技術專家楊明越給 InfoQ 總結道:「單獨用 Kubernetes,下層不是 Docker 的情況,並不算很多」。
  • 推薦給IT新手的11個Docker免費上手項目
    使用該工具可以方便的通過界面管理 docker 不用再記那些命令。安裝命令:306自動縮減 docker 鏡像的體積的工具。大幅度縮減 docker 鏡像的體積,方便分發,使用命令 docker-slim build --http-probe your-name/your-app。
  • 使用Docker 運行微信 PC 客戶端
    DoChat(盒裝微信)是一個 Linux 下的 Docker 化的微信 PC Windows 客戶端,項目地址:https://github.com/huan/docker-wechat,當然既然是容器化的
  • 從rm命令來認識docker容器的刪除
    例如:我們以tomcat為例,tomcat被安裝在linux伺服器上的/usr/local/tomcat文件夾下,那麼要刪除tomcat,命令就應該是「rm -rf /usr/local/tomcat」,在這裡-rf 是指以遞歸的形式刪除tomcat文件夾以及其下的文件。
  • qBittorrent 4.2.1 docker鏡像更新說明
    當然是為了解決一些實際的問題。鏡像地址:https://hub.docker.com/r/80x86/qbittorrentps:新版本qb 4.2.1 docker鏡像最新版為2020年3月5日 晚上18點多編譯的.ps:本次更新主要是功能增加和bug修復,與之前的版本是完全兼容的,可放心升級。
  • 從入門到入土:個人深度學習工作站配置指南(保姆級教程)
    這個問題的原因是ipv4地址池緊張,如果運營商給每家的路由器都安排一個公網ip的話,那ip地址早就不夠用了呀。  因此為了能讓外網訪問到我們區域網內的設備,就需要跟中國電信等運營商申請公網ip(現在能申請到的概率也已經不大了,而且即使申請到也不是所有埠都可以使用的),或者我們自己動手做一些操作來達到同樣的目的。
  • 問題解讀 | Windows防火牆的那些事兒(下)
    上周我們推出了windows防火牆那些事兒的上集,介紹了關於防火牆出錯提示0X6D9錯誤和Windows Firewall服務拒絕訪問的解決方案
  • k8s The connection to the server was refused 問題解決記錄
    連結:https://www.jianshu.com/p/6edc9f171df1前言最近公司的 k8s 集群出現了一個問題:在執行任何 kubectl 命令時都會出現以下錯誤,本文就記錄一下該問題的溯源過程以及解決方式,希望對大家有幫助:The connection to the server 192.168.100.170:6443 was
  • Docker Hub鏡像中首次發現名為Graboid的加密挖礦蠕蟲病毒
    此外,惡意軟體會定期從C2伺服器搜索新的帶有漏洞的主機,然後隨機選擇下一個目標進行傳播。我們的分析表明,挖礦病毒平均有63%的時間處於活躍狀態,每個挖礦周期持續250秒。在Unit 42向Docker團隊通報該情況後,Docker團隊便迅速與Unit 42團隊聯手刪除這些惡意鏡像。  容器化加密挖礦蠕蟲病毒
  • 老朱:Kafka入門教程(1)
    2為了解決這個問題,你需要把爬蟲數據緩存到一個地方,然後再不急不躁的插入到資料庫中。這實際上就是一個典型的生產者消費模型,生產者生產過快導致消費者需要不停的消費,稍有不慎消費者罷工了還會導致產品丟失。如果在生產線上放置一個緩衝區,那麼就可以不擔心消費者程序掛掉,或者內存CPU資源一直被消費者程序佔用。