Docker筆記-Docker-Compose使用-01



有時候一個專案可能會開啟多個container,每個container又要再加入同一個docker-network,而每一個去下指令開啟container的時候就會有些繁瑣,因此可以使用docker-compose去統一管理,使用前請先安裝docker-compose。

docker-compose安裝方式

要運行docker-compose必須要有兩個元件
1.docker-compose 本身
2.docker-compose.yml

以下為小小的範例,
主要是啟動nginx1.13.12和啟動mysql5.7版,
如有需要知道可以去使用哪一個版本可以上 Docker Hub 去找


version: "3"  #檔案docker-compose.yml所使用的格式版本

services: #定義服務 

   web1:   #定義一個web1的服務
     image: nginx:1.13.12 #指定的image為nginx 1.13.12版本
     container_name: nginx-a  #指定此container的名稱
     ports:    #設定port
        - "8083:80"
     volumes:  #設定container外部儲存的地方
        - ./nginx/html/:/usr/share/nginx/html
        - ./nginx/log/:/var/log/nginx/
        - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
        - ./nginx/conf/vhost/:/etc/nginx/conf.d
     networks: #指定docker-network
        - junior2-network
  
   db1: #定義一個db1服務
     image: mysql:5.7 #指定的image為mysql 5.7版本
     container_name: mysql-a #指定此container的名稱
     environment:   #設定輸入的指令
        - MYSQL_ROOT_PASSWORD=junior1234
     volumes:   #將/var/lib/mysql 儲存在外部建立的mysql-a裡面
        - mysql-a:/var/lib/mysql
     ports:     #設定port
        - "3306:3306"
     networks:  #指定docker-network
        - junior2-network
  
volumes:  #建立一個的儲存container的地方
  mysql-a:
  
networks: #建立docker-network
  junior2-network:

在編寫docker-compose.yml文件的時候
記得同一層的一定要對齊,否則在執行的時候會發生錯誤

在編寫好之後可以使用以下指令啟動
docker-compose up -d


接著可以使用docker ps 去查看,可以發現已經啟動了兩個container



關閉docker-compose的方法如下
docker-compose stop

關閉docker-compose裡面的某個服務的方法如下(這邊要使用的是在文件定義的服務名稱,因此使用的是"web1"而不是"nginx-a")
docker-compose stop web1



啟動docker-compose裡面的某個服務的方法如下(這邊要使用的是在文件定義的服務名稱,因此使用的是"web1"而不是"nginx-a")
這邊須注意到,在啟動單一個服務的情況下,docker-compose會禁止使用docker-composeyml檔案內的port對應設定,因此需要用 "-p" 額外做設定,或者直接使用docker-compose up -d 重啟

docker-compose run -p 8083:80 -d web01


留言

這個網誌中的熱門文章

Linux使用指令更改IP方法

Fortigate-轉port