docker学习笔记(五)--docker-compose

文章目录

常用命令

命令 说明
docker-compose up 启动所有docker-compose服务,通常加上-d选项,让其运行在后台
docker-compose down 停止并删除容器、网络
docker-compose start 启动服务
docker-compose stop 停止服务
docker-comopse restart 重启服务

docker-compose是什么

可以管理多个docker容器组成一个应用,需要定义一个YAML格式的配置文件docker-compose.yml写好多个容器之间的调用关系,然后一个命令,就能同时启动或停止这些容器

yml配置指令详解

version

在文件的顶部,需要指定docker-compose的版本。这个版本应该与你安装的docker-compose版本兼容。例如version: '3.8'

services

定义了一组服务,每个服务将在一个容器中运行。

image

指定服务使用的Docker镜像。可以是公共镜像,也可以是私有镜像。例如image: nginx:latest

build

指定构建服务的Dockerfile所在的上下文路径,例如build: ./web

复制代码
version: "3.7"
services:
  webapp:
    build: ./web

command

覆盖容器启动后默认执行的命令。

ports

映射容器端口到宿主机的指令。格式为<宿主机端口>:<容器端口>。

volumes

进行数据卷的挂载

depends_on

指定服务之间的依赖关系,确保依赖服务先启动。

docker-compose.yml文件编写

复制代码
services:
  web:
    image: nginx:latest     #指定 web 服务使用的镜像是 nginx:latest,即最新的官方 Nginx 镜像。
    ports:
      - "80:80"
    volumes:
      - /root/website/nginx.conf:/etc/nginx/nginx.conf      #进行数据卷的简单挂载
      - /root/website/web-root:/usr/share/nginx/html
      - /root/website/web-logs:/var/log/nginx
    depends_on:       #指定 web 服务依赖于 db 服务,这意味着在启动 web 服务之前,Docker Compose 会先启动 db 服务。
      - db
    networks:
      - blognetwork
  db:
    build: .       #指定 db 服务使用当前目录下的 Dockerfile 来构建镜像。
    volumes:       #定义数据卷,进行具名挂载
      - db-data:/var/lib/mysql
      - db-config:/etc/mysql
      - db-logs:/var/log/mysql
    ports:         #进行端口映射
      - "3306:3306"
    networks:     #db 服务连接到 blognetwork 网络。
      - blognetwork
volumes:
  db-data:
  db-config:
  db-logs:
networks:       
  blognetwork:
    driver: bridge

使用命令docker-compose up -d看到两个容器成功运行

相关推荐
wuyk55523 分钟前
从零吃透 MQTT 通信|第 8 章 FreeRTOS 多任务架构下 MQTT 工程架构,任务拆分、队列解耦、临界区保护
c语言·开发语言·stm32·学习·架构
陈年老古董1 小时前
PyTorch食物图像分类实战:从数据集制作到CNN模型训练全流程详解
pytorch·深度学习·学习·机器学习·分类·cnn
明志数科1 小时前
从300克Ego头环看第一人称数据采集趋势:设备轻量化之后,场景端壁垒在哪
数码相机·学习
笨鸟先飞的橘猫1 小时前
系统设计第十七天决策卡
学习·游戏
Sunshing152 小时前
Lyapunov方程系统本身稳定性判定与镇定性判定
笔记·学习
ezreal_pan3 小时前
Pod 重启多场景复盘:OOM、日志阻塞、并发 map 读写导致程序崩溃
docker·k8s
透明的玻璃杯3 小时前
热键驱动 Hotkey Features Integration v9.x(14MB)
笔记
sunoo-2294 小时前
51单片机学习Day2:数码管动态扫描、定时器与中断系统深度总
单片机·嵌入式硬件·学习·51单片机
玉宇夕落4 小时前
Docker + Milvus,数据库永久存放记忆,让对话历史永不丢失
数据库·docker·llm
宣宣猪的小花园.4 小时前
【机器学习】从机理建模到数据学习:机器学习究竟替代了什么
人工智能·学习·机器学习