最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker Compose 使用實(shí)例詳解

 更新時(shí)間:2025年04月22日 14:45:33   作者:你那是什么調(diào)調(diào)  
Docker Compose 是用于定義和運(yùn)行多容器 Docker 應(yīng)用程序的工具,通過(guò) YAML 文件配置應(yīng)用程序服務(wù),一鍵啟動(dòng)所有關(guān)聯(lián)容器,這篇文章主要介紹了Docker Compose 使用實(shí)例,需要的朋友可以參考下

一、Docker Compose 簡(jiǎn)介

Docker Compose 是用于定義和運(yùn)行多容器 Docker 應(yīng)用程序的工具,通過(guò) YAML 文件配置應(yīng)用程序服務(wù),一鍵啟動(dòng)所有關(guān)聯(lián)容器。

二、安裝 Docker Compose

Linux

sudo curl -L "https://mirrors.tuna.tsinghua.edu.cn/docker/compose/releases/download/v2.32.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Windows/macOS
通過(guò) Docker Desktop 安裝(已內(nèi)置 Compose)

驗(yàn)證安裝:

docker-compose --version

三、基礎(chǔ)配置文件示例(docker-compose.yml)

version: '3.8'  # Compose文件格式版本
services:
  web:
    build: .  # 使用當(dāng)前目錄的Dockerfile構(gòu)建
    ports:
      - "8000:80"  # 主機(jī)端口:容器端口
    depends_on:
      - db
    environment:
      - DB_HOST=db
    networks:
      - mynetwork
  db:
    image: mysql:8.0
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: myapp
    networks:
      - mynetwork
    healthcheck:
      test: ["CMD-SHELL", "mysqladmin ping -h localhost"]
      interval: 30s
      timeout: 10s
      retries: 3
volumes:
  db_data:
networks:
  mynetwork:
    driver: bridge

四、關(guān)鍵配置解析

  • version:指定Compose文件格式版本(常用3.x)
  • services:定義服務(wù)(容器)
    • build:指定構(gòu)建上下文路徑(含Dockerfile)
    • image:直接使用官方鏡像
    • ports:端口映射
    • depends_on:服務(wù)依賴關(guān)系
    • environment:環(huán)境變量設(shè)置
  • volumes:數(shù)據(jù)卷定義(持久化存儲(chǔ))
  • networks:自定義網(wǎng)絡(luò)配置
  • healthcheck:容器健康檢查

五、常用命令

啟動(dòng)服務(wù)

docker-compose up -d  # 后臺(tái)啟動(dòng)
docker-compose up --build  # 重新構(gòu)建后啟動(dòng)

停止服務(wù)

docker-compose down  # 停止并刪除容器、網(wǎng)絡(luò)等
docker-compose stop  # 僅停止容器

查看日志

docker-compose logs -f  # 實(shí)時(shí)查看日志
docker-compose logs web  # 查看指定服務(wù)日志

進(jìn)入容器

docker-compose exec web bash  # 進(jìn)入web容器

構(gòu)建鏡像

docker-compose build  # 構(gòu)建所有服務(wù)鏡像
docker-compose build web  # 僅構(gòu)建web服務(wù)鏡像

六、完整項(xiàng)目示例(Node.js + MySQL + Nginx)

項(xiàng)目結(jié)構(gòu)

myapp/
├── docker-compose.yml
├── nginx/
│   ├── nginx.conf
│   └── Dockerfile
├── app/
│   ├── package.json
│   ├── server.js
│   └── Dockerfile
└── .env

docker-compose.yml

version: '3.8'
services:
  nginx:
    build: ./nginx
    ports:
      - "80:80"
    depends_on:
      - app
    networks:
      - frontend
      - backend
  app:
    build: ./app
    environment:
      - NODE_ENV=production
      - DB_HOST=db
    networks:
      - backend
    depends_on:
      db:
        condition: service_healthy
  db:
    image: mysql:8.0
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
      MYSQL_DATABASE: myapp
    secrets:
      - db_root_password
    networks:
      - backend
    healthcheck:
      test: ["CMD-SHELL", "mysqladmin ping -h localhost"]
      interval: 30s
      timeout: 10s
      retries: 3
volumes:
  db_data:
networks:
  frontend:
  backend:
secrets:
  db_root_password:
    file: .env

app/Dockerfile

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
CMD ["npm", "start"]

nginx/Dockerfile

FROM nginx:alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf

nginx/nginx.conf

server {
    listen 80;
    location / {
        proxy_pass http://app:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

.env

DB_ROOT_PASSWORD=supersecret

七、高級(jí)功能

擴(kuò)展配置

# 擴(kuò)展服務(wù)實(shí)例
app:
  deploy:
    replicas: 3
  resources:
    limits:
      cpus: '0.5'
      memory: 512M

多環(huán)境配置

# docker-compose.override.yml(開(kāi)發(fā)環(huán)境)
version: '3.8'
services:
  app:
    build: ./app
    volumes:
      - ./app:/app  # 掛載代碼目錄實(shí)現(xiàn)熱更新
    environment:
      - NODE_ENV=development

使用模板文件

# docker-compose.yml
services:
  app:
    image: myapp:${TAG}

八、最佳實(shí)踐

  • 使用.env文件管理敏感信息
  • 為不同環(huán)境創(chuàng)建獨(dú)立的Compose文件(如docker-compose.prod.yml)
  • 使用健康檢查確保服務(wù)啟動(dòng)順序
  • 對(duì)持久化數(shù)據(jù)使用命名卷
  • 定期清理未使用的鏡像和卷:
docker system prune -a

九、調(diào)試技巧

查看容器狀態(tài):

docker-compose ps

檢查網(wǎng)絡(luò)配置:

docker network inspect mynetwork

驗(yàn)證配置文件:

docker-compose config

到此這篇關(guān)于Docker Compose 使用實(shí)例的文章就介紹到這了,更多相關(guān)Docker Compose 使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用docker搭建jenkins自動(dòng)化工具的實(shí)現(xiàn)

    使用docker搭建jenkins自動(dòng)化工具的實(shí)現(xiàn)

    大家在工作中,應(yīng)該都有使用過(guò)jenkins 自動(dòng)化打包或發(fā)布,本文主要介紹了使用docker搭建jenkins自動(dòng)化工具的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 使用Docker構(gòu)建Python FastAPI鏡像的最佳實(shí)踐

    使用Docker構(gòu)建Python FastAPI鏡像的最佳實(shí)踐

    本文分享了優(yōu)化Python FastAPI應(yīng)用Docker部署的關(guān)鍵技巧:使用slim基礎(chǔ)鏡像減小體積,通過(guò)多階段構(gòu)建分離編譯與運(yùn)行環(huán)境,利用.dockerignore排除無(wú)關(guān)文件,推薦采用非root用戶運(yùn)行增強(qiáng)安全性,需要的朋友可以參考下
    2026-02-02
  • docker安裝git教程,解決clone地址端口錯(cuò)誤的問(wèn)題

    docker安裝git教程,解決clone地址端口錯(cuò)誤的問(wèn)題

    這篇文章主要介紹了docker安裝git教程,解決clone地址端口錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Docker容器中掛載NFS共享目錄的實(shí)現(xiàn)

    Docker容器中掛載NFS共享目錄的實(shí)現(xiàn)

    這篇文章主要介紹了Docker容器中掛載NFS共享目錄的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 解決docker鏡像(centos系統(tǒng))中無(wú)sudo命令問(wèn)題

    解決docker鏡像(centos系統(tǒng))中無(wú)sudo命令問(wèn)題

    這篇文章主要介紹了解決docker鏡像(centos系統(tǒng))中無(wú)sudo命令問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,
    2023-11-11
  • 部署維護(hù)docker環(huán)境的詳細(xì)教程

    部署維護(hù)docker環(huán)境的詳細(xì)教程

    這篇文章主要介紹了部署維護(hù)docker環(huán)境的詳細(xì)教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • docker 運(yùn)行指定內(nèi)存的操作

    docker 運(yùn)行指定內(nèi)存的操作

    這篇文章主要介紹了docker 運(yùn)行指定內(nèi)存的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Dockerfile的使用及docker部署java項(xiàng)目實(shí)踐

    Dockerfile的使用及docker部署java項(xiàng)目實(shí)踐

    Docker通過(guò)Dockerfile構(gòu)建自定義鏡像,簡(jiǎn)化部署流程,主要指令包括FROM、RUN、CMD、ENTRYPOINT、ENV、ADD、COPY、VOLUME、WORKDIR和USER,構(gòu)建Java環(huán)境需準(zhǔn)備目錄、Dockerfile、JDK和jar文件,執(zhí)行構(gòu)建命令并驗(yàn)證部署
    2026-03-03
  • Docker的徹底刪除與重新安裝完整步驟(ubuntu22.04)

    Docker的徹底刪除與重新安裝完整步驟(ubuntu22.04)

    Docker是一種輕量級(jí)的容器化平臺(tái),可以幫助開(kāi)發(fā)人員將應(yīng)用程序及其依賴項(xiàng)打包成一個(gè)可移植的容器,這篇文章主要介紹了Docker的徹底刪除與重新安裝完整步驟的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • vscode 遠(yuǎn)程連接服務(wù)器docker容器的設(shè)置方法

    vscode 遠(yuǎn)程連接服務(wù)器docker容器的設(shè)置方法

    本文主要介紹了vscode 遠(yuǎn)程連接服務(wù)器docker容器的設(shè)置方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評(píng)論

临西县| 明光市| 宝坻区| 西林县| 微博| 苍梧县| 通州市| 大洼县| 克什克腾旗| 同心县| 阿克陶县| 抚远县| 海林市| 赞皇县| 崇文区| 丹阳市| 上思县| 隆林| 斗六市| 扶沟县| 合肥市| 平塘县| 乌兰县| 凉山| 河曲县| 龙井市| 中超| 七台河市| 宁陵县| 酒泉市| 朝阳县| 宜城市| 张家界市| 广汉市| 紫金县| 岳阳市| 石屏县| 岳西县| 伊春市| 三门峡市| 高邮市|