目錄
Docker Compose 介紹
Docker 是個好用的東西,工程師的好夥伴,可以快速建立獨立的環境,如同一個新的作業系統,用於跑程式很方便,和別的程式不會有環境設定的衝突,Docker 的介紹和安裝方法在這裡:全民寫程式 | 好用的 Docker 容器 | Docker Desktop 使用教學 | 程式開發最佳輔助工具。
今天來介紹 Docker Compose,簡單來說,根據官方的說明:
Define and run multi-container applications with Docker.
直接 Google 翻譯給大家:
使用 Docker 定義和運行多容器應用程序。
一般新手入門是從 docker run 開始,但
- docker run 一次只能運行一個容器,要多運行幾個容器需要下多次指令。
- 有些用法光是會 docker run 也不夠,需要其他指令配合,例如:
docker network create
等。 - 一個專案開三個服務的話,兩個專案六個服務,三個專案…不小心把 A 專案的後端連到 B 專案的資料庫怎麼辦?
諸如以上的特點,一時想不到的可能還有更多原因,比較複雜的設定用 docker run 反而更複雜了,其實 docker run 能做的事情 Docker Compose 都能做,還能更多。
專案管理的時候有設定檔最方便了,Docker Compose 就是設定檔的角色,推薦使用✨。
範例
例如說,一個 docker run 的指令:
docker run --name test --hostname test -v ~/Documents/docker_compose_test/ubuntu:/home/ubuntu -p 8080:18080 ubuntu:latest
變成 Docker Compose 設定檔(docker-compose.yml):
version: '3.5' services: test: container_name: test hostname: test image: ubuntu:latest volumes: - ./ubuntu:/home/ubuntu ports: - "8080:18080"
- 有沒有覺得 Compose 比較像個設定檔😆?
- 而且像是 Compose 的 volumes 就可以用相對路徑,也比較方便。
- Compose 如果改了其中的設定,下次建置時不用全部重新建置,只會建置改變的地方。
先確認你有 Docker Compose 嗎?
基本上,它依賴於 Docker,要先有 Docker。
macOS 和 Windows
如果你是 macOS 或 Windows,又得到 Docker Desktop 的話,Compose 已經包含在裡面了。
Linux
安裝步驟
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 如果是 alpine 的話,需要依賴:
py-pip, python3-dev, libffi-dev, openssl-dev, gcc, libc-dev, rust, cargo, make
。 - 輸入命令:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 再輸入命令:
sudo chmod +x /usr/local/bin/docker-compose
如果無法執行 docker-compose
指令
可以這麼做:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
或是加到 bash, zsh, oh-my-zsh ...
,請參考:Command-line completion
測試一下,應該會輸出版本號:
docker-compose --version
推薦文章
Docker
⭐️ 全民寫程式 | 好用的 Docker 容器 | Docker Desktop 使用教學 | 程式開發最佳輔助工具
⭐️ 全民寫程式 | Dockerfile 使用方式 | Dockerfile usage
⭐️ 全民寫程式 | Docker | Compose 介紹 安裝
⭐️ 全民寫程式 | Docker | Compose | docker compose 指令 | docker compose vs docker-compose
全民寫程式:初學者天堂
⭐️ 全民寫程式 | 這不是必要,但學會 Linux 絕對會讓您更有競爭力
⭐️ 全民寫程式|小網址大學問|IP、Port 介紹|網際網路和區域網路|常用本地網址
⭐️ 全民寫程式|小網址大學問|DNS|域名系統|頂級域名、一級域名是什麼?
全民寫程式:進階
⭐️ 全民寫程式|Oh My Zsh|安裝、主題、插件|終端機優化|終端機美化
⭐️ 全民寫程式 | Python | pyenv-virtualenv 教學(安裝篇)
⭐️ 全民寫程式 | Python | pyenv-virtualenv 教學(介紹篇)
⭐️ WordPress 網站架設大補帖 | 自動化備份系統 | 營運網站實際備份案例分享 | 資料庫備份 | 異地備援
⭐️ WordPress 網站架設大補帖 | WordPress 網站搬移基礎步驟 | WordPress 網站切換域名的方法
⭐️ 【法務】全民寫程式 | 專案管理 | 授權很重要 | 不可不知的 Open Source License | 安全地在巨人肩膀上寫程式
⭐️ 網頁開發 | 降低 Youtube 載入時間 | 提升痞客邦網頁載入速度
⭐️ 如何把 Google 相簿的圖片鑲嵌在網頁上?|用 Google 相簿做網頁外部圖片
希望您喜歡首陽的文章,也希望您可以幫首陽~
按火箭20次🚀
留言支持📝
轉發分享
🌸 非常感謝您 🌸
留言列表