当前位置: 首页 > article >正文

docker compose 使用记录

作用

        Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件来配置应用程序的服务,然后使用一个命令即可创建并启动所有服务。

文档位置

        Part 7: Use Docker Compose | Docker Docs

使用方法

        1. 安装 Docker Compose

                  sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
                  sudo chmod +x /usr/local/bin/docker-compose

        2. 创建 docker-compose.yml 文件

                在项目根目录下创建一个 docker-compose.yml 文件,定义服务、网络和卷。

#版本声明:指定了 Docker Compose 文件的版本。这里使用的是版本 3。
version: '3'
#服务定义
services:
  web: #服务名称
    image: nginx:latest  #指定使用的 Docker 镜像,这里是 nginx:latest
    ports:  #ports: 将主机的 80 端口映射到容器的 80 端口
      - "80:80"
     #挂载,将主机的 ./html 目录挂载到容器的 /usr/share/nginx/html 目录,这样可以将静态文件放在主机上,Nginx 会从这个目录中提供服务
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: postgres:latest
    #设置环境变量,这里设置了 POSTGRES_PASSWORD 为 example
    environment:
      POSTGRES_PASSWORD: example
    #将命名卷 postgres_data 挂载到容器的 /var/lib/postgresql/data 目录,这样可以持久化 PostgreSQL 的数据
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  #定义了一个命名卷 postgres_data,用于持久化 PostgreSQL 的数据。命名卷的好处是数据独立于容器,即使容器被删除,数据仍然保留。
  postgres_data:

        3. 启动服务

                在 docker-compose.yml 文件所在的目录下运行命令: docker-compose up -d

                //-d 参数表示在后台运行服务。  

        4. 查看服务状态

                docker-compose ps

        5. 停止服务

                docker-compose down

        6. 重新构建服务

                修改了 docker-compose.yml 文件或服务的 Dockerfile后可以使用以下命令重新构建服务:docker-compose up --build -d

        7. 查看日志

                docker-compose logs

        8. 在特定服务的容器中执行命令:

                docker-compose exec web bash

        9. 配置环境变量

                可以在 docker-compose.yml 文件中使用环境变量,或者创建一个 .env 文件来管理环境变量。

                .env 文件示例:

POSTGRES_USER=admin
POSTGRES_PASSWORD=example
POSTGRES_DB=mydb

                使用示例:

version: '3'
services:
  db:
    image: postgres:latest
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB}


http://www.kler.cn/a/410047.html

相关文章:

  • uniapp 地图移入的快,高亮显示两个
  • 如何在WPF中嵌入其它程序
  • 局域网与广域网:探索网络的规模与奥秘(3/10)
  • 文件的处理(c语言)
  • CLIP-Adapter: Better Vision-Language Models with Feature Adapters 论文解读
  • postgresql按照年月日统计历史数据
  • 随手记:鼠标触顶方法
  • rust宏系列教程-利用派生宏和属性宏增强struct功能
  • uniapp实现APP版本升级
  • 浅谈网络 | 传输层之TCP协议
  • cocos creator 3.8 打飞机Demo 9
  • Vscode 删除键删除失效
  • Pytest-Bdd-Playwright 系列教程(13):钩子(hooks)
  • ip代理池新玩法,收集全网可用代理01,初次验证存活ip
  • 如何判断注入点传参类型--理论
  • 分布式搜索引擎之elasticsearch单机部署与测试
  • 力扣第 63 题不同路径 II
  • Ollama使用感想
  • 4——单页面应用程序,vue-cli脚手架
  • Linux入门系列--查阅与统计
  • --- stream 数据流 java ---
  • 蓝网科技临床浏览系统存在SQL注入漏洞
  • HarmonyOS开发者社区有奖征文二期活动开启!
  • ‌Kotlin中的?.和!!主要区别
  • Spring Boot集成MyBatis-Plus:自定义拦截器实现动态表名切换
  • 【AI】基础原理