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
留言
張貼留言