image

目錄

 

Docker Compose 介紹

Docker 是個好用的東西,工程師的好夥伴,可以快速建立獨立的環境,如同一個新的作業系統,用於跑程式很方便,和別的程式不會有環境設定的衝突,Docker 的介紹和安裝方法在這裡:全民寫程式 | 好用的 Docker 容器 | Docker Desktop 使用教學 | 程式開發最佳輔助工具

今天來介紹 Docker Compose,簡單來說,根據官方的說明:

Define and run multi-container applications with Docker.

直接 Google 翻譯給大家:

使用 Docker 定義和運行多容器應用程序。

一般新手入門是從 docker run 開始,但

  1. docker run 一次只能運行一個容器,要多運行幾個容器需要下多次指令。
  2. 有些用法光是會 docker run 也不夠,需要其他指令配合,例如:docker network create 等。
  3. 一個專案開三個服務的話,兩個專案六個服務,三個專案…不小心把 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
  1. 如果是 alpine 的話,需要依賴:py-pip, python3-dev, libffi-dev, openssl-dev, gcc, libc-dev, rust, cargo, make
  2. 輸入命令:
    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
  3. 再輸入命令:
    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 教學(介紹篇)

⭐️ 全民寫程式|Python|PSD 圖層逐一輸出成圖片

⭐️ WordPress 網站架設大補帖 | 自動化備份系統 | 營運網站實際備份案例分享 | 資料庫備份 | 異地備援

⭐️ WordPress 網站架設大補帖 | WordPress 網站搬移基礎步驟 | WordPress 網站切換域名的方法

⭐️ 【法務】全民寫程式 | 專案管理 | 授權很重要 | 不可不知的 Open Source License | 安全地在巨人肩膀上寫程式

⭐️ 網頁開發 | 降低 Youtube 載入時間 | 提升痞客邦網頁載入速度

⭐️ 網頁開發 | 閱讀進度條實作 | jQuery精簡版

⭐️ 如何把 Google 相簿的圖片鑲嵌在網頁上?|用 Google 相簿做網頁外部圖片

⭐️ 如何在痞客邦文章使用畫質更高的圖片?

⭐️ 痞客邦語法 設定雙欄式列表

 


希望您喜歡首陽的文章,也希望您可以幫首陽~
按火箭20次🚀
留言支持📝
轉發分享
🌸 非常感謝您 🌸

arrow
arrow
    創作者介紹
    創作者 首陽 的頭像
    首陽

    首陽問路

    首陽 發表在 痞客邦 留言(4) 人氣()