目录
其实在家目录创建了一个目录:/root/.docker/cli-plugins
知识点3:构建一个在 Docker Compose 上运行的简单 Python Web 应用程序
3、在您的项目目录中创建另一个名为的文件requirements.txt
5、 创建一个docker-compose.yml文件定义服务
2、创建一个docker-compose.yml用于启动您的 WordPress博客的文件和一个带有卷挂载的单独MySQL实例以实现数据持久性
场景:
例如:我们现在需要启动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的安装
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} mkdir -p $DOCKER_CONFIG/cli-plugins 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是否安装成功
[root@docker cli-plugins]# docker compose version Docker Compose version v2.7.0 [root@docker cli-plugins]# pwd /root/.docker/cli-plugins
知识点3:构建一个在 Docker Compose 上运行的简单 Python Web 应用程序
1、为项目创建一个目录:
[root@docker1 /]# mkdir composetest [root@docker1 /]# cd composetest/
2、在项目目录中创建一个名为的文件app.py
import time import redis from flask import Flask app = Flask(__name__) cache = redis.Redis(host='redis', port=6379) def get_hit_count(): retries = 5 while True: try: return cache.incr('hits') except redis.exceptions.ConnectionError as exc: if retries == 0: raise exc retries -= 1 time.sleep(0.5) @app.route('/') def hello(): count = get_hit_count() return 'Hello World! I have been seen {} times.\n'.format(count)
3、在您的项目目录中创建另一个名为的文件requirements.txt
flask redis
4、创建一个Dockerfile
编写一个构建 Docker 映像的 Dockerfile。该映像包含 Python 应用程序所需的所有依赖项,包括 Python 本身。
# syntax=docker/dockerfile:1 FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP=app.py ENV FLASK_RUN_HOST=0.0.0.0 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt EXPOSE 5000 COPY . . CMD ["flask", "run"]
- 从 Python 3.7 映像开始构建映像。
- 将工作目录设置为
/code
.- 设置命令使用的环境变量
flask
。- 安装 gcc 和其他依赖项
- 复制
requirements.txt
并安装 Python 依赖项。- 向镜像添加元数据以描述容器正在侦听端口 5000
- 将项目中的当前目录复制
.
到镜像中的workdir.
。- 将容器的默认命令设置为
flask run
.
5、 创建一个docker-compose.yml文件定义服务
version: "3.9" services: web: build: . ports: - "8000:5000" redis: image: "redis:alpine"
6、使用compose构建程序
[root@docker1 composetest]# ls app.py docker-compose.yml Dockerfile requirements.txt [root@docker1 composetest]# docker compose up
知识点4:使用compose 搭建个人博客网站
1、创建一个空目录
[root@docker1 /]# mkdir my_wordpress [root@docker1 /]# cd my_wordpress/
2、创建一个docker-compose.yml
用于启动您的 WordPress
博客的文件和一个带有卷挂载的单独MySQL
实例以实现数据持久性
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 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:
3、构建项目
[root@docker1 my_wordpress]# docker compose up -d [+] Running 2/2 ⠿ Container my_wordpress-wordpress-1 Started 2.6s ⠿ Container my_wordpress-db-1 Started
– d 表示在后台运行容器服务
docker compose ps 表示列出目前项目中的所有容器
[root@docker1 my_wordpress]# docker compose ps NAME COMMAND SERVICE STATUS PORTS my_wordpress-db-1 "docker-entrypoint.s…" db running 3306/tcp, 33060/tcp my_wordpress-wordpress-1 "docker-entrypoint.s…" wordpress running 0.0.0.0:80->80/tcp, :::80->80/tcp
4、在浏览器中打开 WordPress
完成所需资料,然后点击安装wordpress
wordpress后台管理:
原文链接:https://blog.csdn.net/qq_48391148/article/details/126690241?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168623078216800184162743%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168623078216800184162743&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-25-126690241-null-null.268%5Ev1%5Ekoosearch&utm_term=docker%E3%80%81wordpress%E3%80%81wordpress%E5%BB%BA%E7%AB%99%E3%80%81wordpress%E4%B8%BB%E9%A2%98%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81