DockerCompose

什么是DockerCompose


  • DockerCompose可以基于Compose文件幫我們快速的部署分布式應(yīng)用,而無需手動(dòng)一個(gè)個(gè)創(chuàng)建和運(yùn)行容器
  • Compose文件是一個(gè)文本文件,通過指令定義集群中的每個(gè)容器如何運(yùn)行
version: "3.8"
services:
  # 直接拉取鏡像倉庫中的鏡像運(yùn)行
  mysql:
    image: mysql:5.7.25
    environment: # 運(yùn)行參數(shù)
      MYSQL_ROOT_PASSWORD: 123
    volumes:# 數(shù)據(jù)卷
      - /tmp/mysql/data:/var/lib/mysql
      - /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf
  # 自定義鏡像來運(yùn)行
  web_service1:
    build:
      context: ./gateway
      dockerfile: Dockerfile
    ports:
      - 8080: 8080
  web_service2:
    build:
      context: ./user-service
      dockerfile: Dockerfile
    ports:
      - 8081: 8081
  ...

Compose文件其實(shí)就是將docker命令通過配置的方式進(jìn)行使用

DockerCompose部分關(guān)鍵字


字段 描述
build 指定 Dockerfile 文件名,要指定Dockerfile文件需要在build標(biāo)簽的子級標(biāo)簽中使用dockerfile標(biāo)簽指定
dockerfile 構(gòu)建鏡像上下文路徑
context 可以是 dockerfile 的路徑,或者是指向 git 倉庫的 url 地址
image 指定鏡像(image與build不弄同時(shí)使用)
command 執(zhí)行命令,覆蓋容器啟動(dòng)后默認(rèn)執(zhí)行的命令
container_name 指定容器名稱,由于容器名稱是唯一的,如果指定自定義名稱,則無法scale指定容器數(shù)量
deploy 指定部署和運(yùn)行服務(wù)相關(guān)配置,只能在 Swarm 模式使用
environment 添加環(huán)境變量
networks 加入網(wǎng)絡(luò),引用頂級networks下條目
network_mode 設(shè)置容器的網(wǎng)絡(luò)模式,如 host,bridge,...
ports 暴露容器端口,與 -p 相同,但端口不能低于 60
volumes 掛載一個(gè)宿主機(jī)目錄或命令卷到容器,命名卷要在頂級 volumes 定義卷名稱
volumes_from 從另一個(gè)服務(wù)或容器掛載卷,可選參數(shù) :ro 和 :rw,僅版本 '2' 支持
hostname 容器主機(jī)名
sysctls 在容器內(nèi)設(shè)置內(nèi)核參數(shù)
links 連接到另外一個(gè)容器,- 服務(wù)名稱[:服務(wù)別名]
privileged 用來給容器root權(quán)限,注意是不安全的,true ,false
restart 設(shè)置重啟策略,no,always,no-failure,unless-stopped。no,默認(rèn)策略,在容器退出時(shí)不重啟容器。on-failure,在容器非正常退出時(shí)(退出狀態(tài)非0),才會(huì)重啟容器。on-failure:3,在容器非正常退出時(shí)重啟容器,最多重啟3次。always,在容器退出時(shí)總是重啟容器。unless-stopped,在容器退出時(shí)總是重啟容器,但是不考慮在 Docker 守護(hù)進(jìn)程啟動(dòng)時(shí)就已經(jīng)停止了的容器。
depends_on 在使用Compose時(shí),最大的好處就是少打啟動(dòng)命令,但一般項(xiàng)目容器啟動(dòng)的順序是有要求的,如果直接從上到下啟動(dòng)容器,可能會(huì)因?yàn)槿萜饕蕾噯栴}而啟動(dòng)失敗。例如在沒啟動(dòng)數(shù)據(jù)庫容器的時(shí)候啟動(dòng)應(yīng)用容器,應(yīng)用容器會(huì)因?yàn)檎也坏綌?shù)據(jù)庫而退出。depends_on標(biāo)簽用于解決容器的依賴、啟動(dòng)先后的問題。

DockerCompose詳細(xì)語法參考官網(wǎng):https://docs.docker.com/compose/compose-file/


DockerCompose安裝


# 先在控制臺設(shè)置一個(gè)變量,后面要用到
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins

  • 命令安裝
curl -SL https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
  • 手動(dòng)安裝:
下載地址:https://github.com/docker/compose/releases
mv <手動(dòng)下載的文件> $DOCKER_CONFIG/cli-plugins/docker-compose
# 賦予執(zhí)行權(quán)限
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
# 查看版本
$DOCKER_CONFIG/cli-plugins/docker-compose version
# 或
docker compose version

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容