• Docker - compose容器编排工具 - 搭建一个自己的博客


     

    目录

    知识点1:什么是 compose?

    知识点2:compose的安装

    其实在家目录创建了一个目录:/root/.docker/cli-plugins

    授予可执行权限

     测试compose是否安装成功

    知识点3:构建一个在 Docker Compose 上运行的简单 Python Web 应用程序

    1、为项目创建一个目录:

    2、在项目目录中创建一个名为的文件app.py

    3、在您的项目目录中创建另一个名为的文件requirements.txt

    4、创建一个Dockerfile

    5、 创建一个docker-compose.yml文件定义服务

    6、使用compose构建程序

    知识点4:使用compose 搭建个人博客网站

    1、创建一个空目录

    2、创建一个docker-compose.yml用于启动您的 WordPress博客的文件和一个带有卷挂载的单独MySQL实例以实现数据持久性

    3、构建项目

    4、在浏览器中打开 WordPress

    场景:

    例如:我们现在需要启动10个容器,其中3个nginx,2个redis,3个mysql,1个zabbix,1个ansible
          有些容器需求先启动,有容器需要后启动,在启动的时候是有先后顺序的。

    批量启动容器,而且启动的时候容器之间是有依赖关系,需要考虑启动顺序的

    编排的内容全部写到一个yaml文件里,docker 的compose根据这个yaml文件里的安排去启动容器。

    知识点1:什么是 compose?

    compose 是一个容器编排工具:

            启动一个容器,进行哪些配置,例如端口,进程,卷,是否链接其他容器等

            compose 是Docker容器进行编排的工具,

    Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose不再需要使用shell脚本来启动容器。

    ###############################################################################################

    知识点2:compose的安装

    1. DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
    2. mkdir -p $DOCKER_CONFIG/cli-plugins
    3. curl -SL https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose

    其实在家目录创建了一个目录:/root/.docker/cli-plugins

     因为compose源码在github上面,所以下载速度比较慢

    授予可执行权限

     测试compose是否安装成功

    1. [root@docker cli-plugins]# docker compose version
    2. Docker Compose version v2.7.0
    3. [root@docker cli-plugins]# pwd
    4. /root/.docker/cli-plugins

    知识点3:构建一个在 Docker Compose 上运行的简单 Python Web 应用程序

    1、为项目创建一个目录:

    1. [root@docker1 /]# mkdir composetest
    2. [root@docker1 /]# cd composetest/

    2、在项目目录中创建一个名为的文件app.py

    1. import time
    2. import redis
    3. from flask import Flask
    4. app = Flask(__name__)
    5. cache = redis.Redis(host='redis', port=6379)
    6. def get_hit_count():
    7. retries = 5
    8. while True:
    9. try:
    10. return cache.incr('hits')
    11. except redis.exceptions.ConnectionError as exc:
    12. if retries == 0:
    13. raise exc
    14. retries -= 1
    15. time.sleep(0.5)
    16. @app.route('/')
    17. def hello():
    18. count = get_hit_count()
    19. return 'Hello World! I have been seen {} times.\n'.format(count)

    3、在您的项目目录中创建另一个名为的文件requirements.txt

    1. flask
    2. redis

    4、创建一个Dockerfile

    编写一个构建 Docker 映像的 Dockerfile。该映像包含 Python 应用程序所需的所有依赖项,包括 Python 本身。

    1. # syntax=docker/dockerfile:1
    2. FROM python:3.7-alpine
    3. WORKDIR /code
    4. ENV FLASK_APP=app.py
    5. ENV FLASK_RUN_HOST=0.0.0.0
    6. RUN apk add --no-cache gcc musl-dev linux-headers
    7. COPY requirements.txt requirements.txt
    8. RUN pip install -r requirements.txt
    9. EXPOSE 5000
    10. COPY . .
    11. CMD ["flask", "run"]
    • 从 Python 3.7 映像开始构建映像。
    • 将工作目录设置为/code.
    • 设置命令使用的环境变量flask
    • 安装 gcc 和其他依赖项
    • 复制requirements.txt并安装 Python 依赖项。
    • 向镜像添加元数据以描述容器正在侦听端口 5000
    • 将项目中的当前目录复制.到镜像中的workdir .
    • 将容器的默认命令设置为flask run.

    5、 创建一个docker-compose.yml文件定义服务

    1. version: "3.9"
    2. services:
    3. web:
    4. build: .
    5. ports:
    6. - "8000:5000"
    7. redis:
    8. image: "redis:alpine"

    6、使用compose构建程序

    1. [root@docker1 composetest]# ls
    2. app.py docker-compose.yml Dockerfile requirements.txt
    3. [root@docker1 composetest]# docker compose up

    知识点4:使用compose 搭建个人博客网站

    1、创建一个空目录

    1. [root@docker1 /]# mkdir my_wordpress
    2. [root@docker1 /]# cd my_wordpress/

    2、创建一个docker-compose.yml用于启动您的 WordPress博客的文件和一个带有卷挂载的单独MySQL实例以实现数据持久性

    1. services:
    2. db:
    3. # We use a mariadb image which supports both amd64 & arm64 architecture
    4. image: mariadb:10.6.4-focal
    5. # If you really want to use MySQL, uncomment the following line
    6. #image: mysql:8.0.27
    7. command: '--default-authentication-plugin=mysql_native_password'
    8. volumes:
    9. - db_data:/var/lib/mysql
    10. restart: always
    11. environment:
    12. - MYSQL_ROOT_PASSWORD=somewordpress
    13. - MYSQL_DATABASE=wordpress
    14. - MYSQL_USER=wordpress
    15. - MYSQL_PASSWORD=wordpress
    16. expose:
    17. - 3306
    18. - 33060
    19. wordpress:
    20. image: wordpress:latest
    21. ports:
    22. - 80:80
    23. restart: always
    24. environment:
    25. - WORDPRESS_DB_HOST=db
    26. - WORDPRESS_DB_USER=wordpress
    27. - WORDPRESS_DB_PASSWORD=wordpress
    28. - WORDPRESS_DB_NAME=wordpress
    29. volumes:
    30. db_data:

    3、构建项目

    1. [root@docker1 my_wordpress]# docker compose up -d
    2. [+] Running 2/2
    3. ⠿ Container my_wordpress-wordpress-1 Started 2.6s
    4. ⠿ Container my_wordpress-db-1 Started

    - d 表示在后台运行容器服务

    docker compose ps 表示列出目前项目中的所有容器

    1. [root@docker1 my_wordpress]# docker compose ps
    2. NAME COMMAND SERVICE STATUS PORTS
    3. my_wordpress-db-1 "docker-entrypoint.s…" db running 3306/tcp, 33060/tcp
    4. my_wordpress-wordpress-1 "docker-entrypoint.s…" wordpress running 0.0.0.0:80->80/tcp, :::80->80/tcp

    4、在浏览器中打开 WordPress

    完成所需资料,然后点击安装wordpress 

     

     wordpress后台管理:

     

     

  • 相关阅读:
    【Android入门】5、Broadcast 广播、Kotlin 的高阶函数、泛型、委托
    Linux中安装MySQL_图解_2023新
    MCAL系列介绍03-ADC
    c++day2
    CMMI认证对软件开发企业的用处
    如何使用pandas的join来比对两个dataframe的重合度,交集
    Redis (二)
    【PAT甲级】1010 Radix
    邂逅【小程序】开发
    【回归预测】MATLAB 实现基于BP神经网络的多变量回归预测
  • 原文地址:https://blog.csdn.net/qq_48391148/article/details/126690241