Docker Compose 安装与使用(常用指令)

一、简介

  • Docker Compose 是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建、启动和停止。使用步骤:

    sh 复制代码
    1. 利用 Dockerfile 定义运行环境镜像
    2. 使用 docker-compose.yml 家义组成应用的各服务
    3. 运行 docker-compose up 启动应用

二、安装与使用

  • 除了在 Linux 上安装 docker 时,不会自动安装 docker-compose,其他平台(window、mac)都会自动安装好 docker-compose。

  • 安装好 docker 后,可以通过下面命令检查是否顺带安装好了 docker-compose,没有安装好,可以按 官网的方式进行安装,然后检查是否安装成功。

    sh 复制代码
    $ docker-compose -v
  • 创建一个工作目录

    sh 复制代码
    $ mkdir ~/docker-compose
    $ cd ~/docker-compose
  • 编写 docker-compose.yml 文件,文件名固定写法。在 yml 语法中 - 表示数组写法,可以多个。

    js 复制代码
    // 版本
    version: '1'
    // 服务
    services:
        // 服务名称(也就是容器名称)
        nginx:
            // 镜像
            image: nginx:2.0
            ports:
                // 端口映射
                - 80:80
            // 关联的容器(也就是可以访问的容器)
            links:
                // 关联容器名称
                - app
            // 目录映射
            volumes:
                - ./nginx/conf.d:/etc/nginx/conf.d
                -  ....可以多个
    
        // 服务名称(也就是容器名称)
        app:
            image: app
            // 对外暴露的端口
            expose:
                - "8080"
  • 创建 ./nginx/conf.d 目录,然后建一个 nginx 配置文件

    sh 复制代码
    # 创建配置文件夹
    $ mkdir -p ./nginx/conf.d
    
    # 进入配置文件夹
    $ cd ./nginx/conf.d
    
    # 新建 nginx 配置文件,名字无所谓,主要是后缀
    $ vim mynginx.conf
  • mynginx.conf 内容

    sh 复制代码
    server {
        listen: 80;
        access_log off;
        location / {
            # app 位置就是 links 里面存在容器名称加上容器暴露的端口
            proxy_pass http://app:8080
        }
    }
  • 然后回到 ~/docker-compose 目录启动容器,启动后通过 http://IP地址 访问

    sh 复制代码
    $ cd ~/docker-compose
    
    # 启动容器
    $ docker-compose up

三、常用指令

  • 启动和停止服务

    sh 复制代码
    # 启动项目中的服务
    $ docker-compose up
    
    # 启动服务并在后台运行
    $ docker-compose up -d
    
    # 停止服务
    $ docker-compose stop
  • 构建和重构服务

    sh 复制代码
    # 构建服务的镜像
    $ docker-compose build
    
    # 如果服务镜像不存在,则构建镜像并启动服务
    $ docker-compose up --build
    
    # 重构服务
    $ docker-compose up --force-recreate
  • 查看服务信息

    sh 复制代码
    # 查看项目中所有服务的信息
    $ docker-compose ps
    
    # 查看容器的日志
    $ docker-compose logs
    
    # 在服务镜像的容器中执行命令
    $ docker-compose exec service_name command
  • 删除服务

    sh 复制代码
    # 删除服务容器
    $ docker-compose down
相关推荐
todoitbo4 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
是枚小菜鸡儿吖11 小时前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
螺蛳粉 螺蛳粉13 小时前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
wefg114 小时前
【Docker】镜像相关指令
运维·docker·容器
java_logo15 小时前
Docker 部署 DPanel:轻松搭建轻量容器管理平台
运维·docker·容器·podman·容器管理·dpanel·轩辕镜像
死磕音视频15 小时前
Open WebUI 入门:用 Docker 装上本地对话界面并连接 Ollama
docker·ollama·本地大模型·open webui
分布式存储与RustFS15 小时前
CI 老被 Docker Hub 的 429 卡住,自建 Registry 把镜像搬进内网
运维·docker·开源·镜像仓库·对象存储·ci·rustfs
n1121216 小时前
Docker 容器时区错 8 小时:3 个坑
运维·docker·容器·故障排查·服务器运维·容器时区
小白的码BUG之路17 小时前
K8s -- 搭建过程中经常遇到的问题
云原生·容器·kubernetes
慈云数据17 小时前
用 DSH 辅助部署一个网站监控平台:Uptime Kuma + Docker 实战
运维·docker·容器