首页 > 其他分享 >Docker Compose 开发笔记

Docker Compose 开发笔记

时间:2024-10-29 14:42:32浏览次数:5  
标签:Compose 服务 db 笔记 compose Docker 8000 docker

什么是 Docker Compose?

Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用程序。通过 docker-compose.yml 文件,你可以配置应用程序的服务、网络和卷等。

基本结构

docker-compose.yml 文件通常包含以下几个部分:

1. 版本

指定 Docker Compose 文件的版本。

version: '3'

2. 服务(services)

定义应用程序中的服务。每个服务可以是一个容器。

services:
  web:
    # 服务配置
  db:
    # 数据库配置

3. 构建(build)

指定构建 Docker 镜像的上下文。

build: .
  • . 表示当前目录,Docker 将使用该目录中的 Dockerfile

  • 或者使用现成的image
    描述:指定要使用的 Docker 镜像。如果镜像不存在,将从 Docker Hub 拉取。
    示例:

services:
  web:
    image: nginx

4. 命令(command)

指定容器启动时要执行的命令。

command: python manage.py runserver 0.0.0.0:8000

5. 卷(volumes)

定义主机与容器之间的文件共享。

volumes:
  - .:/app  # 将主机当前目录挂载到容器的 /app 目录

6. 端口映射(ports)

将主机端口映射到容器端口。

ports:
  - "8000:8000"  # 将主机的 8000 端口映射到容器的 8000 端口

7. 依赖(depends_on)

定义服务之间的依赖关系。确保服务按顺序启动。

depends_on:
  - db  # web 服务在 db 服务之后启动

8. 环境变量(environment)

设置容器内的环境变量。

environment:
  - DATABASE_URL=mysql://root:root@db/db1  # 配置数据库连接信息

示例 docker-compose.yml

以下是一个完整的示例,包含一个 Django 应用和一个 MySQL 数据库:

version: '3'

services:
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/app
    ports:
      - "8000:8000"
    depends_on:
      - db
    environment:
      - DATABASE_URL=mysql://root:root@db/db1

  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: db1

volumes:
  db_data:  # 定义持久化卷

常用命令

  • 启动服务docker-compose up(可以使用 -d 参数在后台运行)
  • 停止服务docker-compose down
  • 查看服务日志docker-compose logs
  • 重建服务docker-compose up --build

小贴士

  • 在开发过程中使用主机的文件挂载,以便快速反映代码更改。
  • 在生产环境中,考虑使用命名卷和网络,以确保数据持久化和服务间的安全通信。

标签:Compose,服务,db,笔记,compose,Docker,8000,docker
From: https://www.cnblogs.com/win1998/p/18513233

相关文章

  • spring下 -spring整体架构,JdbcTemplate笔记
    2,搭建JavaMaven项目我的idea是2024.1.1版本,创建普通Maven项目如下图: 用的jdk8,项目名可以自己改,Archetype选图中的第一个就行,之后点create。 创建后空的Maven项目的代码结构就是下图 再修改pom.xml文件<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns......
  • 如何使用Docker容器化部署数据科学应用
    在文章开头段落直接回答标题所提问题,字数要求120~200字之间(核心观点加粗,用“、”隔开)并对其中一点展开详细描述。使用Docker容器化部署数据科学应用主要涉及以下几个关键步骤:创建Dockerfile、构建Docker镜像、启动容器、管理容器。首先,开发者需要创建一个Dockerfile来定义环境配......
  • 安装docker
    更新系统包```shellsudoyumupdate-y```添加DockerCE仓库```shellsudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2sudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo```安装DockerCE```shellsu......
  • 【学习笔记】dp 优化
    单调栈&单调队列没啥好说的。放两道题目。线段树优化dp例题CF115ELinearKingdomRaces容易想到记\(f_{i,j}\)表示前\(i\)个跑道,\([i-j+1,i]\)全部修好的最大利润,但不好优化。考虑转化为表示\([j,i]\)全部修好的最大利润。最简单的状态转移方程:\[f_{i,j}=f_{i-1,......
  • Docker运行环境安装
    作者:京东科技林中Docker是一个开放的平台,用于开发、发布和运行应用程序。Docker分离了应用程序和运行应用的基础设施,从而实现了软件的快速交付。利用docker提供的一系列功能,包括构建、发布、测试和部署,可以帮助开发人员将最新版本代码应用到生产环境中。Docker可以安装在多个平......
  • 学习笔记10.29
    教育用例——辅导课业“内心独白法”:让模型把那些不想让用户看到的内容,隐藏地放到一个结构化的格式里。然后在把输出展示给用户之前,解析一下这段输出,只展示能给学生看到的那部分。步骤1-首先,用你自己的解题思路来解决问题。不要看学生的答案,学生的答案可能是不对的。把你的题......
  • vins-fusion gpu, docker, opencv4.5.4(cuda) 复现
    代码:https://gitee.com/zheng-yongjie/vins-fusion-gpu-cv4?skip_mobile=true硬件:jetsonxaviernx,系统20.04nvcc-V可查看cuda版本本文在docker里面复现1.opencvcuda安装root@ubuntu:~#pwd/rootwget-Oopencv-4.5.4.ziphttps://github.com/opencv/opencv/archi......
  • ARM架构鲲鹏主机BClinux离线安装docker步骤
    简介: 下载并安装适用于ARM架构的DockerCE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。■......
  • CodeQL学习笔记(3)-QL语法(模块、变量、表达式、公式和注解)
    最近在学习CodeQL,对于CodeQL就不介绍了,目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记,根据个人知识库笔记修改整理而来的,分享出来共同学习。个人觉得QL的语法比较反人类,至少与目前主流的这些OOP语言相比,还是有一定难度的。与现在网上的大多数所谓CodeQL教程不同,本系列基于......
  • centos 安装docker
    #更新yumupdate#查看可安装的docker版本信息,我这儿在腾讯云服务器上查到的是旧的yuminfodocker 下面是deepseekai的回答:使用清华大学的镜像源来安装DockerCE是一个不错的选择,因为这样可以加快下载速度。以下是使用清华大学镜像源安装DockerCE的完整步骤:###1.安......