# Docker Compose ### 主講人:黃夙賢 --- ## 用命令建立網頁資料庫應用 - 先抓資料->建docker network->mysql->phpmyadmin->apache - 有沒有辦法把整套流程結合起來? ``` mkdir web cd web wget https://raw.githubusercontent.com/shhuangmust/html/111-1/immust_7_footer.html docer network create mybridge docker run -d --network mybridge --name db -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=abc1234 mysql docker run -d --network mybridge --name myadmin -p 8888:80 phpmyadmin docker run -d --name web --network mybridge -p 8080:80 -v $PWD:/var/www/html tutum/apache-php ``` --- ## Docker Compose - 使用docker run可以啟動單一的docker container,但是如果要啟動多個 docker container,需要輸入多次docker run,還要建立起之間的docker network連結 - docker compose主要的目的,就是在docker-compose.yml檔內,設定所有要一起啟動的docker container --- ## 下載Docker Compose ``` sudo apt install docker-compose-plugin docker compose version ``` ![](https://i.imgur.com/anG98zg.png) --- ## docker-compose.yml - docker-compose.yml是docker如何啟動多個服務的yaml檔案 ```yaml= version: '3' services: db: image: mysql ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: abc1234 myadmin: image: phpmyadmin ports: - 8888:80 web: image: tutum/apache-php ports: - 8080:80 volumes: - $PWD:/var/www/html ``` --- ## 下載docker-compose.yml - wget https://raw.githubusercontent.com/shhuangmust/CloudComputing/main/docker-compose.yml ![](https://i.imgur.com/RIkjIhR.png) --- ## 啟動docker compose ``` docker compose up -d docker compose ps (查看啟動的服務) (使用wsl,記得開啟docker desktop->settings->resource->wsl integration->Ubuntu) ``` ![](https://hackmd.io/_uploads/Syptf2ju3.png) --- ## 執行結果 ![](https://i.imgur.com/H8a0gbX.png) --- ## 停止docker compose服務 - docker compose stop ![](https://hackmd.io/_uploads/BkCCG3sO3.png) --- ## 刪除docker compose服務 - docker compose rm ![](https://hackmd.io/_uploads/H1azX3s_2.png) --- ## 期末作業 - 請使用docker compose技術,建立起一個擁有mysql資料庫,phpmyadmin管理介面,以及apache伺服器的容器服務 - 請將建立步驟以及畫面擷取下來,撰寫成雲端運算與應用網路期末報告,並於tronclass期末作業中繳交 --- ## 參考解答(Powershell版本) ``` mkdir web cd web wget -Uri https://raw.githubusercontent.com/shhuangmust/html/111-1/immust_7_footer.html -Outfile index.html wget -Uri https://raw.githubusercontent.com/shhuangmust/CloudComputing/main/docker-compose.yml -Outfile docker-compose.yml (用notebook開啟docker-compose.yml,將$PWD目錄改成web目錄的路徑) docker compose up -d ``` ---
{"metaMigratedAt":"2023-06-17T18:27:41.084Z","metaMigratedFrom":"YAML","title":"Docker Compose","breaks":true,"contributors":"[{\"id\":\"ef0225b9-6c2a-4012-82c9-fa1031d2c4db\",\"add\":2981,\"del\":541}]"}
    186 views