当前位置: 首页 > article >正文

Docker-Compose安装和使用

Docker-Compose是什么?

  • Docker-Compose是单机容器编排工具。单机也就是说只能在一台机器上使用。如果是集群,则需要使用k8s这样的技术。
  • 通过yml文件定义多容器如何部署。yml文件定义了容器的先后顺序,彼此的依赖关系,存储方式等内容。
  • Windows/Mac系统,默认提供Docker-Compose,linux需要单独安装才可使用。

Docker-Compose能做什么?

如果要部署下面的三个组件,NGINX为Tomcat提供负载均衡,Tomcat访问MySQL获取数据。

如果这一组应用要部署上线,需要先安装MySQL,然后安装Tomcat,再安装NGINX,并让它们之间可以访问,这一系列的操作,在不使用Docker-Compose的情况下,需要运维人员执行一系列的安装命令,然后再去修改配置文件。

显然这样的操作很繁琐,使用Docker-Compose可以解决这个问题。

Docker-Compose通过执行一个命令脚本,就可以实现先安装MySQL,再安装Tomcat,最后安装NGINX。并且彼此之间形成依赖关系。

简单来说,Docker-Compose就是docker镜像快速部署的一个工具。

 

安装Docker-Compose

教程网址:

Plugin | Docker Docs

根据教程一步步执行对应的安装命令:

执行过程:

看到版本信息时,说明已经安装完成。

使用Docker-Compose部署博客网站

WordPress是什么?

WordPress是一个开源的博客网站,下面通过部署WordPress网站,来演示Docker-Compose的使用。

WordPress使用MySQL数据库,如果自行部署一个WordPress,则需要部署数据库服务和前端应用。

部署WordPress

Docker-Compose部署WordPress官方教程:

https://github.com/docker/awesome-compose/tree/master/official-documentation-samples/wordpress/

根据教程,一步步操作:

1.创建名称为docker-compose.yml的文件

2.在创建的文件中放入命令脚本
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:
      - 8005: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:

3.创建工作文件夹

在usr/local目录中创建名称为my_wordpress的文件夹,并把docker-compose.yml文件放入进去

4.执行启动命令

进入到/usr/local/my_wordpress路径下,执行启动命令

docker compose up -d

 因为网络的原因,我没有执行成功。

5.浏览器访问wordpress网站

如果上一步执行成功,通过ip:端口,可以访问wordpress。

192.168.1.10:8005

192.168.1.10 这个ip是linux的ip

8005是上面设置的wordpress的访问端口

6.移除操作

如果想移除wordpress,可以使用移除命令

docker compose down --volumes

7.docker-compose.yml解读

services:  定义如何安装容器,容器的先后顺序,都在services中定义。
  db:  第一个需要安装的容器,db,名称可以自定义。
    image: mariadb:10.6.4-focal   获取mariadb:10.6.4-focal镜像文件并生成容器 
    command: '--default-authentication-plugin=mysql_native_password'
    volumes:  挂载数据
      - db_data:/var/lib/mysql    将物理机中一个空的路径 挂载到容器内部地址中:/var/lib/mysql
    restart: always  自动重启,当容器停止运行时,自动重启容器
    environment:  参数设置
      - MYSQL_ROOT_PASSWORD=somewordpress  设置MySQL root用户的密码
      - MYSQL_DATABASE=wordpress 数据库名称
      - MYSQL_USER=wordpress 数据库新的用户名
      - MYSQL_PASSWORD=wordpress 数据库新的密码
    expose: 暴露端口
      - 3306
      - 33060
  wordpress:  第二个需要安装的容器,wordpress,名称可以自定义。
    image: wordpress:latest  获取wordpress:latest镜像文件并生成容器 
    volumes:   挂载数据
      - wp_data:/var/www/html  将物理机中一个空的路径 挂载到容器内部地址中:/var/www/html
    ports: 暴露端口
      - 8005:80  容器内容80端口,对应到外部的8005端口,外部用8005端口访问
    restart: always 自动重启,当容器停止运行时,自动重启容器
    environment: 参数设置
      - WORDPRESS_DB_HOST=db  数据库主机 
      - WORDPRESS_DB_USER=wordpress  镜像初始化参数设置
      - WORDPRESS_DB_PASSWORD=wordpress 镜像初始化参数设置
      - WORDPRESS_DB_NAME=wordpress 镜像初始化参数设置
volumes:  挂载数据
  db_data:  设置物理机的路径
  wp_data: 设置物理机的路径


http://www.kler.cn/a/468869.html

相关文章:

  • 小R的蛋糕分享
  • 网络协议安全的攻击手法
  • 【LC】2469. 温度转换
  • 78、使用爱芯派2_AX630C开发板 3.2T高有效算力 低功耗 支持AI-ISP真黑光实验
  • 【C++】构造函数与析构函数
  • 【C++】深入解析二维数组初始化与越界问题
  • 联发科MTK6771/MT6771安卓核心板规格参数介绍
  • 曲靖郎鹰金属构件有限公司受邀出席第十七届中国工业论坛
  • vulnhub——Earth靶机
  • 单片机-LED实验
  • 【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(四)
  • 数据分析思维(八):分析方法——RFM分析方法
  • php反序列化 触发的魔术方法 原理 pop链构造 ctfshow 练习
  • UML之发现用例
  • 【Blackbox Exporter】prober.Handler源码详细分析
  • 缓存-文章目录
  • Qt 5.14.2 学习记录 —— 일 新项目
  • python:多线程 简单示例
  • 毛泽东思想概论
  • 【Docker】docker启动命令,不执行特定程序,但是让容器保持启动
  • 微信小程序几种数据通信方式记录
  • C++基础概念复习
  • Prism模块化
  • 华为交换机---自动备份配置到指定ftp/sftp服务器
  • 数仓相关数据读后感
  • 【C++】B2101 计算矩阵边缘元素之和