• docker学习进阶之docker-compose(二)


    1. DockerCompose介绍
    Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 一键启动所有的服务。
    DockerCompose的使用步骤

    • 创建对应的DockerFile文件
    • 创建yml文件,在yml文件中编排我们的服务
    • 通过 docker-compose up 命令 一键运行我们的容器

    2. Compose安装
    官网地址:https://docs.docker.com/compose

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

    速度比较慢的话使用下面的地址:

    curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/dockercompose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    
    • 1

    修改文件夹权限

    chmod +x /usr/local/bin/docker-compose
    
    • 1

    建立软连接
    ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

    校验是否安装成功
    docker-compose --version

    3. Compose配置规则
    docker-compse.yml核心
    官网地址:https://docs.docker.com/compose/compose-file/compose-file-v3/

    version: '' # 版本
    servers: # 服务
    	服务1: web
    		# 服务的配置
    		build
    		network
    		images
    	服务2: redis
    	服务3:
    	服务4:
    ...
    # 其他配置 网络,全局的规则 数据卷
    volumes:
    configs:
    networks:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    1. Compose一键部署实战
      一键部署WP博客
      (1)创建my_wordpress目录
    mkdir my_wordpress
    
    • 1

    (2)创建yml文件docker-compose.yml

    version: "3.9"
    services:
    	db:
    		image: mysql:5.7
    		volumes:
    			- db_data:/var/lib/mysql
    		restart: always
    		environment:
    			MYSQL_ROOT_PASSWORD: somewordpress
    			MYSQL_DATABASE: wordpress
    			MYSQL_USER: wordpress
    			MYSQL_PASSWORD: wordpress
    	wordpress:
    		depends_on:
    			- db
    		image: wordpress:latest
    		volumes:
    			- wordpress_data:/var/www/html
    		ports:
    			- "8000:80"
    		restart: always
    		environment:
    			WORDPRESS_DB_HOST: db:3306
    			WORDPRESS_DB_USER: wordpress
    			WORDPRESS_DB_PASSWORD: wordpress
    			WORDPRESS_DB_NAME: wordpress
    volumes:
    	db_data: {}
    	wordpress_data: {}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    (3)通过up命令启动

    docker-compose up -d
    
    • 1

    在这里插入图片描述

    4. 部署一个SpringBoot项目
    我们自己通过Java项目实现访问计数的功能

    FROM java:8
    COPY my-counter-views-0.0.1-SNAPSHOT.jar app.jar
    EXPOSE 8080
    CMD ["java","-jar","app.jar"]
    
    • 1
    • 2
    • 3
    • 4

    yml

    version: '3.9'
    services:
    	myapp:
    		build: .
    		image: myapp
    		depends_on:
    			- redis
    		ports:
    			- "8080:8080"
    	redis:
    		image: "library/redis:alpine"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    5. compose常见操作命令
    (1)查看版本
    docker-compose version
    (2)根据yml创建service
    docker-compose up
    指定yaml:docker-compose up -f xxx.yaml
    后台运行:docker-compose up -d
    (3)查看启动成功的service
    docker-compose ps
    也可以使用docker ps
    (4)查看images
    docker-compose images
    (5)停止/启动service
    docker-compose stop/start
    (6)删除service[同时会删除掉network和volume]
    docker-compose down
    (7)进入到某个service
    docker-compose exec redis sh

    6. scale扩缩容
    docker-compose up --scale web=5 -d
    在这里插入图片描述

  • 相关阅读:
    C语言源代码系列-管理系统之机房机位预定系统
    全网最透彻!Dubbo整合SpringBoot详解,又通宵了
    阿里的这份支持千万级并发Nginx Web服务器详解PDF也有人说不行?
    Improving Multimodal Accuracy Through Modality Pre-training and Attention
    .NET6发布项目到腾讯云Windows2012R全网最详细教程
    springcloud3 分布式事务解决方案seata之TCC模式6
    Java项目:SSM网上药品销售商城网站系统
    Util应用框架基础(四) - 验证
    5G在医疗保健领域的4个革命性应用案例
    教你springboot配置swagger实现接口文档
  • 原文地址:https://blog.csdn.net/qq_38747892/article/details/125455402