1.06 docker Compose多容器部署
1.docker部署wordpress
- 將dockerHub上的wordpress和mysql拉取到本地
- 建立mysql的container,埠不需要對映,資料庫是wordpress去訪問
- 建立wordpress的container,對映到本地的8080埠
- 訪問IP:8080,可以看到wordpress的歡迎頁
- 選中文,繼續
- 填寫資訊,點選安裝
- 點登入,通過兩個image成功部署了wordpress
2.docker compose介紹
- 多容器的APP很難部署和管理
- docker compose就類似於批處理
- docker compose是一個命令列工具,可以通過一個yml格式的檔案定義多容器的docker應用
- 通過一條命令就可以根據yml檔案的定義去建立或者管理多個容器
- docer compose版本2只能用於單機,版本3可以用於多機
- docker-compose.yml是預設的名字,檔案中有如下三種重要的概念
- Services:一個service代表一個container,這個container可以由dokerHub的image建立,也可以由本地的Dockerfile build出來的image建立
- Services的啟動類似於docker run,可以給其指定network和volume,所以可以給service指定network和volume的引用
3.docker compose安裝和使用
- 下載docker compose
- 賦許可權
- 檢視版本,顯示就安裝好了
- 在某個目錄建立docker-compose.yml檔案,這裡在/home下建立,寫入內容
version: '3'
services:
wordpress:
image: wordpress
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_PASSWORD: admin
networks:
- my-bridge
mysql:
image: mysql:5.5
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: wordpress
volumes:
- mysql-data:/var/lib/mysql
networks:
- my-bridge
volumes:
mysql-data:
networks:
my-bridge:
driver: bridge
- 啟動docker-compose
- 另一個視窗檢視容器網路狀態
- 在另一個會話,檢視當前docker程式
- 檢視docker-compose
- 停止docker-compose
- 啟動docker-compose
- 停止並刪除docker-compose
- 後臺執行docker-compose
- 互動執行docker-compose的方法
- 找到之前寫的flask-redis,進入目錄
- 建立docker-compose.yml,寫入如下內容
version: "3"
services:
redis:
image: redis
web:
build:
context: .
dockerfile: Dockerfile
ports:
- 8080:5000
environment:
REDIS_HOST: redis
- 啟動docker-compose
- 啟動後,瀏覽器訪問IP:8080,可以看到如下
- 停止並刪除
4.容器擴充套件和負載均衡 - 啟動並後臺執行compose
- 檢視程式,此時有一個redis和一個web
- 擴充套件web的應用部署
- 但是執行完會報錯,8080埠占用
- 停止並刪除compose
- 刪除docker-compose.yml中的如下兩行
- 啟動並建立3個web服務
- 執行中也可以擴充套件,實現了高效快速擴充套件
- 檢視程式
- 假如有多個web,同時訪問一個redis,還需要一個負載均衡器
- 修改之前的app.py如下
- 修改之前的Dockerfile如下
- 修改之前的docker-compose.yml如下,最後加一段haproxy
- 停止並刪除compose
- 執行compose
- 嘗試訪問
- 動態將web擴充套件成3個
- 檢視程式
- 嘗試訪問
- 當訪問高峰過去,還可以減少叢集節點
- 檢視程式
- 停止並刪除compose
5.複雜應用部署
- 有兩個對外的App,votingApp是對外投票用的,resultsApp會實時顯示候選人得票情況
- votingApp訪問量大,先把投票結果寫到redis快取,java去取結果寫到資料庫
- resultsApp從資料庫獲取最新的投票結果
- 進入目錄
- 啟動docker-compose
- 瀏覽器訪問5000和5001埠
- 關閉並刪除
-
學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928
[清華團隊帶你實戰區塊鏈開發]
(https://ke.qq.com/course/344443?tuin=3d17195d)
掃碼獲取海量視訊及原始碼 QQ群:
721929980
相關文章
- Docker Compose 多容器應用Docker
- 使用 Docker Compose 管理多個容器Docker
- .NET Core容器化之多容器應用部署(Docker-Compose)Docker
- .NET Core容器化之多容器應用部署@Docker-ComposeDocker
- Docker 容器編排利器 Docker ComposeDocker
- docker-compose部署ELKDocker
- Docker Compose部署GitLabDockerGitlab
- Docker容器化部署嘗試——多容器通訊(node + mongoDB + nginx)DockerMongoDBNginx
- Docker Compose 安裝與部署Docker
- docker-compose 部署參考Docker
- docker-compose部署redis,flaskDockerRedisFlask
- 使用docker-compose管理freeswitch容器Docker
- 如何用Docker Compose部署專案?Docker
- 利用docker-compose一鍵部署Docker
- 使用啄木鳥CI部署Docker/ComposeDocker
- Docker Compose部署隨機圖APIDocker隨機API
- Docker - 03 編排容器 Docker Compose 指令速查表Docker
- 容器技術|Docker三劍客之docker-composeDocker
- Docker compose 部署前後端-----採用nginx代理,支援一個埠部署多個前端Docker後端Nginx前端
- docker(二十三):docker通過docker-compose部署redmine服務Docker
- docker-compose 部署 Apollo 自定義環境Docker
- 使用Portainer部署Docker容器實踐AIDocker
- Docker容器與虛擬化技術:OpenEuler 部署 docker容器應用Docker
- Docker折騰記: (2)基於docker-compose構建yapi容器DockerAPI
- Dockerfile指令與Docker-compose容器編排-搭建docker私有倉庫Docker
- Docker(七)Docker-Compose部署SpringBoot+Redis+MySQL+NginxDockerSpring BootRedisMySqlNginx
- Docker容器學習梳理 - 應用程式容器環境部署Docker
- docker-compose 部署 Laravel 專案全記錄DockerLaravel
- 使用 docker-compose 部署 golang 的 Athens 私有代理DockerGolang
- docker-compose快速部署flink1.18.1Docker
- Docker容器化部署Python應用DockerPython
- 在docker容器中部署Web專案DockerWeb
- Docker 和 Docker ComposeDocker
- docker composeDocker
- Docker 多容器編排Swarm(六)DockerSwarm
- Dockerfile與docker-compose容器編排(Docker系列第3章,共3章)Docker
- Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana)收集日誌DockerElasticsearch
- docker-compose安裝部署gitlab中文版DockerGitlab