docker-compose ports和expose的區別詳解_docker

來源:腳本之家  責任編輯:小易  

基于下面的需求:1.雖然單個Docker容器能夠100%移植到任何平臺,但是如何確保多容器分布式應用也是100%可移植?涵括范圍從準備階段到生產階段 或跨數據中心,或在公有云之間。2.我們已經實現Docker標準化,但是如何在這些標準之上能夠拓展 Docker生態系統的廣度和深度?3.如何重構應用程序交付流水線以便支持基于容器的快速迭代?4.將傳統整體型monolithic應用分解為微服務以后,有更多的組件需要跟蹤和管理,Docker生態系統如何幫助我們做到?Docker Machine,Docker Swarm,和Docker Compose.這三個組件分別覆蓋分布式應用整個周期的不同階段。并且是可以串聯起來www.13333515.buzz防采集請勿采集本網。

docker-compose中有兩種方式可以暴露容器的端口:ports和expose。

compose不支持緊耦合的容器組,也不支持容器共享存儲。

ports

默認情況下,鏡像debian:wheezy如果沒有默認的服務在運行的話就會退出,所以要改變一下默認的命令,docker-compose.yml為: dvc:image:debian:wheezy volumes: www:/usr/share/nginx/html:ro

ports暴露容器端口到主機的任意端口或指定端口,用法:

官方鏡像下的簡單示例 本節中,將創建一個 Container 來運行 Docker 的官方 Registry 鏡像。你將推送(Push)一個鏡像到這個 Registry 服務器,然后再從該 Registry 中拉取(Pull)同一個鏡像。

ports: - "80:80" # 綁定容器的80端口到主機的80端口 - "9000:8080" # 綁定容器的8080端口到主機的9000端口 - "443" # 綁定容器的443端口到主機的任意端口,容器啟動時隨機分配綁定的主機端口號

首先docker-compose.yml并沒有args這個標簽,所以不支持 docker-compose啟動格式是:docker-compose[-f=<arg>.][options][COMMAND][ARGS.],也就是說args是加在docker-compose啟動命令中的

不管是否指定主機端口,使用ports都會將端口暴露給主機。

直接使用docker-compose讀取yml配置就可以啟動容器了 docker-compose-f(你的docker-compose.yml完整路徑)up 就可以啟動了

容器中可以運行一些網絡應用,要讓外部也可以訪問這些應用,可以通過 -P(大寫) 或 -p (小寫) 參數來指定端口映射。

(1) 當使用-P標記時,Docker 會隨機映射一個49000~49900的端口到內部容器開放的網絡端口。

使用docker ps可以看到,本地主機的 49155 被映射到了容器的 5000 端口。此時訪問本機的 49155 端口即可訪問容器內 web 應用提供的界面。

$ sudo docker run -d -P training/webapp python app.py $ sudo docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse

同樣的,可以通過docker logs命令來查看應用的信息。

$ sudo docker logs -f nostalgic_morse * Running on http://0.0.0.0:5000/ 10.0.2.2 - - [23/May/2014 20:16:31] "GET / HTTP/1.1" 200 - 10.0.2.2 - - [23/May/2014 20:16:31] "GET /favicon.ico HTTP/1.1" 404 -

(2) -p(小寫)則可以指定要映射的IP和端口,但是在一個指定端口上只可以綁定一個容器。支持的格式有 hostPort:containerPort、ip:hostPort:containerPort、ip::containerPort。

expose

expose暴露容器給link到當前容器的容器,用法:

expose:- "3000"- "8000"

以上指令將當前容器的端口3000和8000暴露給link到本容器的容器。

和ports的區別是,expose不會將端口暴露給主機。

docker-compose up-d 出來是個容器。dockerfile build出來是個鏡像。dockerfile是自己定義自己的鏡像作用。docker-compose是指定鏡像的啟動文件,掛載目錄,環境變量等等內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • docker-compose的安裝和使用詳解
  • 詳解如何使用docker-compose命令
  • docker及docker-compose的實例用法
  • docker私服倉庫harbor安裝的步驟詳解
  • 解決docker容器時區及時間不同步問題的方法
  • 如何快速清理 docker 資源的方法
  • docker python api 安裝配置的詳解
  • docker 教程之centos安裝 docker
  • docker swarm入門實例詳解
  • 詳解為 docker 設置代理
  • 詳解docker 容器不自動退出結束運行的方法
  • docker設置代理的方法教程
  • docker容器資源配額控制詳解
  • docker-compose和dockerfile的區別
  • docker-compose是不是從上到下創建容器的
  • docker compose 安裝后報錯
  • 如何在線安裝docker compose詳細步驟
  • 時速云的Pod和docker compose有什么區別?
  • Docker Compose啟動數據卷容器為什么只能啟動最后那一個
  • 如何安裝docker-compose
  • docker-compose.yml的配置問題
  • docker-compose.yml怎么用
  • 沒有docker-compose怎么辦
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全dockerhyper-vvmwarevirtualboxxenserverkvmqemuopenvzxencloudstackopenstack云計算技術云其它首頁服務器云和虛擬化dockerdocker-compose的安裝和使用詳解詳解如何使用docker-compose命令docker及docker-compose的實例用法docker私服倉庫harbor安裝的步驟詳解解決docker容器時區及時間不同步問題的方法如何快速清理 docker 資源的方法docker python api 安裝配置的詳解docker 教程之centos安裝 dockerdocker swarm入門實例詳解詳解為 docker 設置代理詳解docker 容器不自動退出結束運行的方法docker設置代理的方法教程docker容器資源配額控制詳解docker 清理命令集錦docker 給運行中的容器設置端口映ubuntu14.04+docker的安裝及使用docker獲取鏡像報錯docker: errodocker.service啟動失敗:unit ndocker容器如何優雅的終止詳解centos7 安裝docker 解決啟動不了詳解docker國內鏡像拉取和鏡像加淺談docker-compose網絡設置之nedocker如何固定ip設置的方法docker 容器虛擬化的實用技巧總結docker指令收集整理(收藏)在ubuntu中安裝docker教程在docker中部署confluence和jira-softwardocker及docker-compose的實例用法docker入門安裝教程(小白篇)詳解如何干凈的卸載docker的方法教你使用如何docker部署淘寶rap2服務docker版的mysql5.7升級到mysql8.0.13,數docker 自動部署tomcat詳解
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果