docker-compose

Docker_Compose 筆記

安裝 docker-compose

下載

curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

安裝

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

查看版本

docker-compose version

測試

第一步,創建 Spring boot 服務

通過Spring Initializru頁面,創建一個 Spring boot 服務,並且指定要使用的項目。

第二步,創建 Dockerfile

第三步,使用 docker-compose 定義一個文件

version: '2'
services:
  web:
    build: .
    ports:
     - "8080:8080"
  redis:
    image: "redis:alpine"

這個 compose.yml 定義2個服務,一是Spring boot 一個是 redis 服務。

  • Spring Web 服務:使用 Dockerfile 。將 Web 容器内部的5000端口映射到 host 的5000端口;並將 Web 容器與 redis 容器連結。

  • redis服務:官網的redis。

第四步,使用 Compose

使用命令docker-compose up启动

docker-compose up

運行成功之後,在browser :http://ipaddress:8080/ ,返回如下:

Hello World! I have been seen 1 times.

img 要放圖片

刷新再次访问返回

Hello World! I have been seen 2 times.

img 要放圖片

不断的刷新数字会不断的增长。

docker-compose 命令

使用docker-compose up -d 在後台啟動服務

啟動所有容器,-d 將會在後臺啟動並運行所有的容器

docker-compose up -d

使用docker-compose ps 查看啟動的服務

列出專案中目前的所有容器

docker-compose ps
Name    Command               State           Ports         
-------------------------------------------------------------

使用docker-compose stop停止服務。

docker-compose stop
Stopping composetest_web_1   ... done
Stopping composetest_redis_1 ... done

docker-compose restart :重啟專案中的服務

docker-compose -h 查看幫助

docker-compose -h 

create and start containers

docker-compose up

start services with detached mode

docker-compose -d up

start specific service

docker-compose up <service-name>

stop services 停止已經處於運行狀態的容器,但不刪除它。通過 docker-compose start 可以再次啟動這些容器

docker-compose stop

start service 啟動已經存在的服務容器

docker-compose start

list images

docker-compose images

list containers

docker-compose ps

display running containers

docker-compose top

stop all contaners and remove images, volumes 停用移除所有容器以及網路相關

docker-compose down

remove stopped containers 刪除所有(停止狀態的)服務容器。推薦先執行 docker-compose stop 命令來停止容器

docker-compose rm 

kill services

docker-compose kill

查看服務容器的輸出

docker-compose logs

構建(重新構建)專案中的服務容器

服務容器一旦構建後,將會帶上一個標記名,例如對於 web 項目中的一個 db 容器,可能是 web_db。可以隨時在專案目錄下運行 docker-compose build 來重新構建服務

docker-compose build

拉取服務依賴的鏡像

docker-compose pull

在指定服務上執行一個命令

docker-compose run ubuntu ping docker.com

設置指定服務運行的容器個數。通過 service=num 的參數來設置數量

docker-compose scale web=3 db=2

參考

Install Docker Compose | Docker Documentation

使用 docker-compose 替代 docker run - 张志敏的技术专栏

Angular — Local Development With Docker-Compose | by Bhargav Bachina | Bachina Labs | Medium

Docker(四):Docker 三剑客之 Docker Compose