• Docker(六)、Docker-compose简单了解


    一、简单了解–>概述

    Docker-compose 容器编排,比如一个java应用,涉及到mysql,tomcat ,redis ,nginx等。docker可以通过脚本实现先后安装 各个容器,每个容器需要的依赖文件都做了关系绑定,只需要使用docker的容器编排工具

    一)、官方提供的容器编排工具:Docker-compose特点:

    • 1 、docker compose 单机多容器部署工具
      docker compose 只能在一台宿主机做多容器部署,如果需要多台宿主机做集群,需要使用docker swarm ,k8s 实现集群部署
    • 2、底层通过yml文件定义多容器如何部署
    • 3、win/mac默认提供docker compose ,linux则需要安装

    二)、Docker-compose安装

    指定docker-compose安装路径:/usr/local/bin/

    curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
    
    sudo chmod +x /usr/local/bin/docker-compose
    
    验证:
    docker-compose --version  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    至此,安装完毕。

    参考:Docker-compose官网安装

    三)、浅实践下

    通过docker-compose部署:WordPress项目

    WordPress :是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQ数据库的服务器上架设WordPress。你可以使用WordPress搭建一个简单的独立博客,也可以把WordPress当作一个内容管理系统(CMS),用来搭建一个小门户网站,总之,现在的WordPress已经强大到几乎可以搭建目前所有常见类型的网站,比如门户、下载站、淘宝客、论坛、多博客等等。
    step1: cd /usr ,创建wordpress ,并进入此目录,

    参看:[wordpress部署的项目指导](https://github.com/docker/awesome-compose/blob/master/official-documentation-samples/wordpress/README.md)

    • step1 :创建文件:vim /usr/wordpress/docker-compose.yml ,编辑内容并保存:
    services:
      db:
        # We use a mariadb image which supports both amd64 & arm64 architecture
        image: mariadb:10.6.4-focal
        # If you really want to use MySQL, uncomment the following line
        #image: mysql:8.0.27
        command: '--default-authentication-plugin=mysql_native_password'
        volumes:
          - db_data:/var/lib/mysql
        restart: always
        environment:
          - MYSQL_ROOT_PASSWORD=somewordpress
          - MYSQL_DATABASE=wordpress
          - MYSQL_USER=wordpress
          - MYSQL_PASSWORD=wordpress
        expose:
          - 3306
          - 33060
      wordpress:
        image: wordpress:latest
        volumes:
          - wp_data:/var/www/html
        ports:
          - 80:80
        restart: always
        environment:
          - WORDPRESS_DB_HOST=db
          - WORDPRESS_DB_USER=wordpress
          - WORDPRESS_DB_PASSWORD=wordpress
          - WORDPRESS_DB_NAME=wordpress
    volumes:
      db_data:
      wp_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
    • 30
    • 31
    • 32
    • 33
    • step2:解析并执行脚本docker compose up -d
      up:表示直接对docker-compose.yml 解析自动部署并运行
      执行docker ps 输出:
    CONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS         PORTS                               NAMES
    57f320fd788f   wordpress:latest       "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   wordpress-wordpress-1
    8284fe1dd383   mariadb:10.6.4-focal   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   3306/tcp, 33060/tcp                 wordpress-db-1
    
    • 1
    • 2
    • 3

    以上输出可查看到有自动做好的端口映射,有2个容器,一个是db容器,一个是wordpress容器,浏览器访问:宿主机ip,选择语言 注册后即可登录

    小结:以上,通过docker-compose快速部署了一个wordpress应用, 通过一个yml 文件部署了多个容器,并且做了容器之间有效配置及完成了容器之间的互通互连,wordpress就是通过docker compose作为容器编排迅速完成自动化部署的代表样例

    四).以上步骤遇到问题及解决

    1、报错:curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
    解决:git config --global http.version HTTP/1.1
    
    
    2、报错:-bash: git: command not found
    解决:
    yum -y install git
    git —version
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    计算机网络第五章知识点回顾(自顶向下)
    1513:受欢迎的牛(DFS&tarjan&强连通分量)
    手把手分析 lv_config.h 文件
    Linux常用初级指令介绍和使用
    Linux 多进程解决客户端与服务器端通信
    【ROS2原理4】interface 接口
    【微服务】微服务架构
    5款必备的电脑软件
    xss.haozi.me靶机 通关
    c语言进阶篇:柔性数组
  • 原文地址:https://blog.csdn.net/qq_17033579/article/details/133941446