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

news2024/12/24 10:55:23

一、简介

image.png

  • Docker Compose 是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建、启动和停止。使用步骤:
    1. 利用 Dockerfile 定义运行环境镜像
    2. 使用 docker-compose.yml 家义组成应用的各服务
    3. 运行 docker-compose up 启动应用
    

二、安装与使用

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

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

    $ docker-compose -v
    
  • 创建一个工作目录

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

    // 版本
    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 配置文件

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

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

    $ cd ~/docker-compose
    
    # 启动容器
    $ docker-compose up
    

三、常用指令

  • 启动和停止服务

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

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

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

    # 删除服务容器
    $ docker-compose down
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/825997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python制作超高难度走迷宫游戏,你要来挑战嘛~(赶紧收藏)

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 走迷宫,是一项充满智慧的挑战~ 作为经常刷短视频的我们,见识过不少迷宫小游戏 当然印象深刻的当然是小动物走迷宫 这里有几组挑战走迷宫的小可爱。先来看看吧! (1&#xff…

Java Maven 构建项目里面有个聚合的概念

Java 项目里面有个聚合的概念,它没有.net里面解决方案(solution)的能力,可以统一的编译项目下的所有包,或设置统一的打包路径,使用maven编译后的产物也不会像.net那样编译到当前项目的bin文件夹下面,而是统一的生成到配…

MySQL 其他数据库日志

我们了解数据库事务时,知道两种日志:重做日志,回滚日志。 对于线上数据库应用系统,突然遭遇 数据库宕机 怎么办?在这种情况下,定位宕机的原因 就非常关键。我们可以查看数据库的 错误日志。因为日志中记录…

保修管理系统

保修管理系统密切关注IT资产的保修信息,以便在发生任何故障或损坏时,供应商可以及时更换和修复任何IT硬件。自动化保修管理软件跟踪各种供应商提供的维修和服务期限的有效性,以便任何硬件都可以在保修到期之前升级,从而降低成本并…

企业项目中md-loader项目组件文档实现

背景需求: 随着业务增多,公共组件变多,无法直观知道其中的方法使用和业务场景,轻量级不需要重新新建一个项目 技术基础: 1.仿造element-ui md-loader 需求场景: 当前项目公共组件比较多,需…

在AndroidStudio中如何查看Gradle的版本

以Android Studio Giraffe | 2022.3.1为例 File -> Project Structure -> Project Android Gradle Plugin Version - Android Gradle插件版本号 Gradle Version - Gradle的版本号 Gradle 版本 (gradle version): Gradle 是一种通用的构建工具,用于构建各种类…

蓝牙、GPS定位学习

启动状态(APP) 冷启动 指在启动应用时,后台没有应用的进程或者进程被杀死的情况下,系统会重新创建一个新的进程,并按照一定的顺序创建和初始化Application类和MainActivity类,最后显示在界面上。这个过程需…

vue3使用iframe引入其他网站,vue-router路由跳转后页面空白,刷新之后才展示页面内容乌龙事件

问题描述:vue3项目的页面A跳转到页面B时,页面B页面是空白的,需要手动刷新一下才能恢复正常,在页面A中用iframe引入了别的网站(后续事实证明,跟iframe没一毛钱的关系)。着急的童鞋可以直接拉到底…

【C++】开源:Eigen3矩阵与线性代数库配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Eigen3矩阵与线性代数库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&…

机柜PDU的选购也有大学问——与机柜PDU相关的那些事儿

在各行各业数据中心机房供配电建设过程中,机柜专用PDU电源插座看似是一个较为简单的用电设备,事实上又不那么简单。机柜PDU,是为安装在机柜内部的IT设备提供电源分配、管理的末端配电设备,在不同的工作场合对于PDU的规格要求也是不…

HackSudo2靶机 通关详解

环境配置 发现vmWare的kali扫不到virtualbox的靶机 网上找了挺久资料都没解决 索性全桥接上物理机了 信息收集 漏洞发现 扫个目录 都看了一眼 没什么有用的 然后回到file.php 感觉之前做过类似的靶场,猜测存在文件包含 随便传个file试试 确实有 考虑日志文件包含 之前看…

C++---list常用接口和模拟实现

list---模拟实现 list的简介list函数的使用构造函数迭代器的使用list的capacitylist element accesslist modifiers list的模拟实现构造函数,拷贝构造函数和迭代器begin和endinsert和eraseclear和析构函数 源码 list的简介 list是用双向带头联表实现的一个容器&…

[用go实现解释器]笔记1-词法分析

本文是《用go实现解释器》的读书笔记 ​ https://malred-blog​malred.github.io/2023/06/03/ji-suan-ji-li-lun-ji-shu-ji/shi-ti/go-compile/yong-go-yu-yan-shi-xian-jie-shi-qi/go-compiler-1/#toc-heading-6http://个人博客该笔记地址 ​github.com/malred/malanghttp:/…

入行软件测试的一些工作感悟

成为xx一员测试已经有1年半了,一直没有真正坐下来花些时间将自己的思路理清一下。刚好近期公司落地了OKR,给自己制定了OKR之后思路终于开始清晰起来,朦朦胧胧地开始看清了远方的路,麻着胆子分析一下自己,毕竟摸黑走路的…

Screens 4 for mac VNC客户端 强大的远程控制工具

Screens 4 for Mac 是一款功能强大的 VNC 客户端软件,为 Mac 用户提供了便捷的远程访问和控制解决方案。无论您是需要远程管理服务器、办公电脑,还是需要远程协助他人解决问题,Screens 4 都是您的理想选择。 Screens 4 for Mac具备简洁直观的…

小白到运维工程师自学之路 第六十二集 (docker持久化与数据卷容器)

一、概述 Docker持久化是指将容器中的数据持久保存在主机上,以便在容器重新启动或迁移时不丢失数据。由于Docker容器是临时和可变的,它们的文件系统默认是易失的,这意味着容器中的任何更改或创建的文件都只存在于此容器的生命周期内。但是&a…

基于低代码平台快速搭建应用

一、前言 近年来,SaaS行业的迅猛发展带动了低代码领域的快速兴起。国外的低代码创业公司如Mendix、Outsystems,以及国内的软件业巨头如华为、用友、金蝶等和小众高性价比的引迈JNPF都已经纷纷涉足低代码市场。根据Transparency Market Research的报告&am…

独立站运营要做哪些工作?包含哪些模块?

在电商行业中,广告投放和设计等岗位的招聘可能会相对容易,但真正理解并有效执行独立站运营的人员却十分稀少。因此,今天将聚焦于独立站的运营,特别是针对精品垂直站和品牌站的运营。 首先,我们需要了解“运营”的含义…

vue2使用v-viewer实现图片预览

v-viewer 用于图片浏览的Vue组件,支持旋转、缩放、翻转等操作,基于viewer.js。 中文文档:Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作 | Mirari’s Blog 代码示例:https://mirari.cc/v-viewer/ 在Vue.js 2…

Java并发系列之三:乐观锁机制

上一篇悲观锁中,我们讲到悲观锁的四种状态时,提到了“无锁”这种状态,并解释其有两种语义,一种是对共享资源不进行任何同步原语保护;另一种是共享资源会出现被竞争的情况,但是不使用操作系统同步进行保护&a…