Linux中國

在 Ubuntu 16.04 中使用 Docker Compose

什麼是 Docker Compose

Docker Compose 是一個運行多容器 Docker 應用的工具。Compose 通過一個配置文件來配置一個應用的服務,然後通過一個命令創建並啟動所有在配置文件中指定的服務。

Docker Compose 適用於許多不同的項目,如:

  • 開發:利用 Compose 命令行工具,我們可以創建一個隔離(而可交互)的環境來承載正在開發中的應用程序。通過使用 Compose 文件,開發者可以記錄和配置所有應用程序的服務依賴關係。
  • 自動測試:此用例需求一個測試運行環境。Compose 提供了一種方便的方式來管理測試套件的隔離測試環境。完整的環境在 Compose 文件中定義。

Docker Compose 是在 Fig 的源碼上構建的,這個社區項目現在已經沒有使用了。

在本教程中,我們將看到如何在 Ubuntn 16.04 上安裝 Docker Compose。

安裝 Docker

我們需要安裝 Docker 來安裝 Docker Compose。首先為官方 Docker 倉庫添加公鑰。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

接下來,添加 Docker 倉庫到 apt 源列表:

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

更新包資料庫,並使用 apt 安裝 Docker

$ sudo apt-get update
$ sudo apt install docker-ce

在安裝進程結束後,Docker 守護程序應該已經啟動並設為開機自動啟動。我們可以通過下面的命令來查看它的狀態:

$ sudo systemctl status docker
------------------------------
● docker.service - Docker Application Container Engine
 Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
 Active: active (running) 

安裝 Docker Compose

現在可以安裝 Docker Compose 了。通過執行以下命令下載當前版本。

# curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

為二進位文件添加執行許可權:

# chmod +x /usr/local/bin/docker-compose

檢查 Docker Compose 版本:

$ docker-compose -v

輸出應該如下:

docker-compose version 1.14.0, build c7bdf9e

測試 Docker Compose

Docker Hub 包含了一個用於演示的 Hello World 鏡像,可以用來說明使用 Docker Compose 來運行一個容器所需的配置。

創建並打開一個目錄:

$ mkdir hello-world
$ cd hello-world

創建一個新的 YAML 文件:

$ $EDITOR docker-compose.yml

在文件中粘貼如下內容:

unixmen-compose-test:
 image: hello-world

注意: 第一行是容器名稱的一部分。

保存並退出。

運行容器

接下來,在 hello-world 目錄執行以下命令:

$ sudo docker-compose up

如果一切正常,Compose 輸出應該如下:

Pulling unixmen-compose-test (hello-world:latest)...
latest: Pulling from library/hello-world
b04784fba78d: Pull complete
Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f
Status: Downloaded newer image for hello-world:latest
Creating helloworld_unixmen-compose-test_1 ... 
Creating helloworld_unixmen-compose-test_1 ... done
Attaching to helloworld_unixmen-compose-test_1
unixmen-compose-test_1 | 
unixmen-compose-test_1 | Hello from Docker!
unixmen-compose-test_1 | This message shows that your installation appears to be working correctly.
unixmen-compose-test_1 | 
unixmen-compose-test_1 | To generate this message, Docker took the following steps:
unixmen-compose-test_1 | 1. The Docker client contacted the Docker daemon.
unixmen-compose-test_1 | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
unixmen-compose-test_1 | 3. The Docker daemon created a new container from that image which runs the
unixmen-compose-test_1 | executable that produces the output you are currently reading.
unixmen-compose-test_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it
unixmen-compose-test_1 | to your terminal.
unixmen-compose-test_1 | 
unixmen-compose-test_1 | To try something more ambitious, you can run an Ubuntu container with:
unixmen-compose-test_1 | $ docker run -it ubuntu bash
unixmen-compose-test_1 | 
unixmen-compose-test_1 | Share images, automate workflows, and more with a free Docker ID:
unixmen-compose-test_1 | https://cloud.docker.com/
unixmen-compose-test_1 | 
unixmen-compose-test_1 | For more examples and ideas, visit:
unixmen-compose-test_1 | https://docs.docker.com/engine/userguide/
unixmen-compose-test_1 | 
helloworld_unixmen-compose-test_1 exited with code 0

Docker 容器只能在命令(LCTT 譯註:此處應為容器中的命令)還處於活動狀態時運行,因此當測試完成運行時,容器將停止運行。

結論

本文是關於在 Ubuntu 16.04 中安裝 Docker Compose 的教程。我們還看到了如何通過一個 YAML 格式的 Compose 文件構建一個簡單的項目。

via: https://www.unixmen.com/container-docker-compose-ubuntu-16-04/

作者:Giuseppe Molica 譯者:Locez 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國