Docker-Compose 指令介紹
- docker-compose ps - 顯示現在使用的container
docker-compose ps -a
# 範例畫面,每個人不同
Name Command State Ports
---------------------------------------------------------------------------------------------------
adminer entrypoint.sh docker-php-e ... Up 0.0.0.0:9999->8080/tcp
mysql docker-entrypoint.sh --def ... Up 0.0.0.0:3306->3306/tcp, 0.0.0.0:33060->33060/tcp
- docker-compose up - 啟動描述檔中的 container
docker-compose up
# docker-compose 啟動後隱藏
docker-compose up -d
- docker-compose down - 關閉描述檔中的 container
docker-compose down
- docker-compose start - 開始描述檔中的 container
docker-compose start
- docker-compose stop - 暫停描述檔中的 container
docker-compose stop
Example MySQL
與Adminer
version: "3.5"
networks:
local:
name: local
services:
db:
container_name: "mysql"
image: "mysql:5.7"
volumes:
- "./.data/:/var/lib/mysql"
- "./mysql:/etc/mysql"
command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_general_ci
restart: always
environment:
MYSQL_ROOT_PASSWORD: "root"
ports:
- 3306:3306
- 33060:33060
networks:
- local
adminer:
container_name: "adminer"
image: "adminer"
restart: always
ports:
- 8080:8080
networks:
- local
docker-compose up -d
這樣就簡單的起一組MySQL服務,container 內網為 local
。
Docker Compose - yaml 撰寫
version: "3.5" # docker-compose file 版本
networks: # 網路層
local: # 網路層
name: local # 網路層名稱
services:
serviceName: # 服務器名稱對於 container 中亦可用 hostname 使用
container_name: "" # container 名稱
image: "" # image 名稱
volumes: # 容器與本地 相互的資料
- "./localfolder/:/containerfolder" # 本地位置:容器位置
command:
restart: always # 重啟
environment: # 環境變數
KEY: "value"
ports: # port號
- 8080:8080 # 本地port:容器port號
networks: # 網路層
- local # 網路層名稱 用於 container 之間溝通使用