docker利用單個鏡像映射到多個端口操作
需求:
官網的資源服務器肯定不能使用一個實例, 需要多個一起,但是如果繼續復制太慢了,我就想能不能直接使用docker鏡像,多制造幾個相同的容器實例
前后兩個docker-compose.yml
version: ’3’services: micro-hcnet-website-13: image: 172.18.0.1:5000/hcnet-website-12:0.0.1-SNAPSHOT restart: on-failure ports: - 8311:8211~
version: ’3’services: micro-hcnet-website-13: image: 172.18.0.1:5000/hcnet-website-12:0.0.1-SNAPSHOT restart: on-failure ports: - 8211:8211~
執行docker-compse.yml之后
顯示正常啟動
查看容器
映射成功
最后查看consul
果然都是同一個映射接口。
補充知識:Docker入門——多容器的建立(docker-compose)
一次啟動多個多個服務(容器),會方便我們在生產實踐中的操作
以haproy 負載均衡 apache 服務與nginx服務為例
通過compose 進行docker 的多容器應用
Compose 是一個用戶定義和運行多個容器的 Docker 應用程序。在 Compose 中你可以使用 YAML 文件來配置你的應用服務。然后,只需要一個簡單的命令,就可以創建并啟動你配置的所有服務。
使用 Compose 基本會有如下三步流程:
在 Dockfile 中定義你的應用環境,使其可以在任何地方復制。
在 docker-compose.yml 中定義組成應用程序的服務,以便它們可以在隔離的環境中一起運行。
最后,運行dcoker-compose up,Compose 將啟動并運行整個應用程序。
1. 編輯docker-compose.yml文件進行多鏡像指定
apache: # apache 服務 image: rhel7:v1 # 父鏡像名稱 expose:- 80 # 暴露端口 volumes: # 掛載卷- ./web/:/var/www/htmlnginx: # nginx 服務 image: nginx # 父鏡像 expose: - 80 # 暴露端口haproxy: # haproxy 服務 image: haproxy # 父鏡像 volumes: # 掛載卷- ./haproxy:/usr/local/etc/haproxy links: # 關聯容器- apache- nginx ports: # 端口映射- '8080:80' expose: # 暴露的服務端口- 80
2. 編輯haproxy的配置文件
global # 全局配置,日志信息 log 127.0.0.1 local0 log 127.0.0.1 local1 noticedefaults log global option httplog option dontlognull timeout connect 5000ms timeout client 50000ms timeout server 50000ms stats uri /statusfrontend balancer bind 0.0.0.0:80 # 監聽端口 default_backend web_backends # 默認后后端backend web_backends balance roundrobin server weba apache:80 check # 后端a apache 與 .yml 文件中的 links 中的內容對應 server webb nginx:80 check
查看所需文件是否充分
[root@foundation21 compose]# lsdocker-compose.yml haproxy web[root@foundation21 compose]# pwd/tmp/docker/compose# 查看文件隸屬關系[root@foundation21 compose]# tree.├── docker-compose.yml├── haproxy│ └── haproxy.cfg└── web └── index.html2 directories, 3 files
在cmopose目錄喜下執行docker-compose up 命令進行同時啟動多鏡像
在瀏覽器中進行查看:
haproxy 實現了后端web服務器的負載均衡
以上這篇docker利用單個鏡像映射到多個端口操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
1. Java發送http請求的示例(get與post方法請求)2. JS繪圖Flot如何實現動態可刷新曲線圖3. springboot基于Redis發布訂閱集群下WebSocket的解決方案4. 關于探究python中sys.argv時遇到的問題詳解5. 基于android studio的layout的xml文件的創建方式6. CSS自定義滾動條樣式案例詳解7. 使用ProcessBuilder調用外部命令,并返回大量結果8. Intellij IDEA官方最完美編程字體Mono使用9. python使用requests庫爬取拉勾網招聘信息的實現10. IDEA項目的依賴(pom.xml文件)導入問題及解決
