該學的還是要學 Docker(1)
目標
- 使用 docker-compose 直接將所有的服務 on 起來
- 安裝 Nginx
- 安裝 MySQL 8.0
- 安裝 php 7.4
- 安裝 Redis
前言
docker 一直都是我的待學習項目,之前都是稍微摸一點摸一點,
都沒有特別認真學習或是有一個稍微可以成功展示的成果,
趁疫情比較有空閒的時間,將開發環境嘗試由 MAMP 改為 docker的過程做一個紀錄,MAMP好用歸好用,但每次都會卡在一些莫名其妙的地方,
php.ini的路徑有多個,xdebug造成loading速度緩慢等因素。趁機轉為 docker 可以快速部署環境且可以直接切換工具的版本,不同的專案可以使用不同的版本同步進行。
細節不會紀錄太多,討厭太冗長的內容,多打幾次指令就會熟了,
我也是參考許多人的分享,之後自己調整成自己覺得順眼的版本,
使用別人分享的版本時,一定會有卡關的地方,仔細看安裝過程中的錯誤訊息再網路上查一定會有解答。
檔案樹狀圖
1 | ├── docker-compose.yml |
遇到的坑
如果你跟我一樣是習慣自己手刻一步一步完成的人,可以跟您分享我遇到的一些坑
- docker-compose.yml ,檔案名稱打錯,打成 dockercompose-compose 或 docker-composer
- docker-compose.yml的 build不需要指定資料夾內的檔案
- build: ./nginx (正確)
- build: ./nginx/Dockerfile (錯誤)
常用指令
- docker ps
- docker images
- docker pull
- 書本建議不要使用 tag 是 latest 的 image,由於是最新版本,可能會有不穩定的情況
- docker rmi (刪除image)
- docker (刪除container)
- docker exec -it container_id /bin/bash
- docker-compose up
- docker-compose build
時常看到的指令
docker -itd
- -i 分配一個終端機介面
- -t 互動輸入模式
- -d 在背景模式執行
redis 安裝後出現錯誤訊息
- Class ‘Redis’ not found
- 在 php 的 Dockerfile 中 安裝 redis 套件
1
2RUN pecl install redis
RUN docker-php-ext-enable redis
- 在 php 的 Dockerfile 中 安裝 redis 套件
- Connection refused
- 將專案的連線設定 由 localhost 或 127.0.0.1 改為 docker-compose.yml的名稱 redis
- Class ‘Redis’ not found
如果這一篇文章有幫助到你的話,
請您幫忙點選廣告,都是以不擾人與不強迫的方式呈現