1. 程式人生 > 其它 >Docker基本命令與使用 —— Docker Compose (七)

Docker基本命令與使用 —— Docker Compose (七)

官方文件: https://docs.docker.com/compose/

1.Docker Compose安裝

docker compose安裝其實很簡單,只要下載可執行檔案,執行即可。 檢視最新版本: https://github.com/docker/compose/releases
# docker官方github下載
$ sudo curl -L https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 如果比較慢,可以從daocloud下載
$ sudo curl 
-L https://get.daocloud.io/docker/compose/releases/download/v2.5.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # 新增可執行許可權 $ sudo chmod +x /usr/local/bin/docker-compose $ docker-compose --version Docker Compose version v2.5.0

2.Docker Compose的命令

  • docker-compose build 

把服務構建成映象。

  1. 這個命令會構建/重新構建定義在docker-compose.yml檔案裡的所有的服務,使用這一個命令就會一次性把所有服務需要的映象都建立好。
  2. 還可以構建單獨的服務,例如:docker-compose build mongo。有時候你不想把所有的東西都重新構建一遍,你只想構建其中的一個服務。
  • docker-compose up 

一旦映象準備好了,那就執行該命令,啟動那些映象,使之成為容器執行。它會自動建立容器,並執行這些容器。 該命令還可以加一些引數,列如 --no-deps node,它表示重新構建node映象,停止、銷燬重新建立node,但不重新建立node所依賴的服務。 -d引數,後臺執行,避免輸出霸佔終端
  • docker-compose down 

可以使用該命令停止、刪除由up命令建立的一切東西

  1. 該命令會停止所有的容器,然後刪除它們。
  2. 如果只想停止容器,並不刪除,那麼應該使用docker-compose stop
  3. 如果你想同時刪除所有的映象和volumes,你可以:docker-compose down --rmi all --volumes

常用形式命令

  • docker-compose logs
  • docker-compose ps
  • docker-compose stop
  • docker-compose start
  • docker-compose rm

3.docker-compose.yml

建立簡單的 docker-compose.yml 檔案

version: '3.4'
services:    
  nginx:
    image: nginx    
    ports:
      - "8081:80"      
  tomcat:
    image: tomcat
    labels:
      service: tomcat
    ports:
      - "8082:8080"
執行docker-compose,可以發現兩個容器映象已經在執行
[root@localhost ~]# docker-compose up -d
[+] Running 3/3
 ⠿ Network root_default     Created         1.6s
 ⠿ Container root-nginx-1   Started         8.3s
 ⠿ Container root-tomcat-1  Started         8.3s
[root@localhost ~]# docker-compose ls
NAME                STATUS              CONFIG FILES
root                running(2)          /root/docker-compose.yml
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                       NAMES
4f1aff327916   tomcat    "catalina.sh run"        35 seconds ago   Up 26 seconds   0.0.0.0:8082->8080/tcp, :::8082->8080/tcp   root-tomcat-1
eba9128fd175   nginx     "/docker-entrypoint.…"   35 seconds ago   Up 26 seconds   0.0.0.0:8081->80/tcp, :::8081->80/tcp       root-nginx-1