docker compose容器编排工具使用

docker compose是一个工具,用于在docker容器中运行多个服务。它使用YAML文件来配置应用程序的服务,并使用一个命令来启动、停止和管理它们。docker compose允许用户定义多个容器并将它们组合在一起,以便可以轻松地在多个容器之间进行通信和协作。

docker compose的主要功能包括:

定义和运行多个容器的应用程序。
使用命令一次启动、停止和管理多个容器。
提供了一个简单的方式来管理容器之间的依赖关系。
允许用户轻松地扩展和升级应用程序。

docker-compose.yml文件用于定义和配置多个docker容器的运行方式。它包含多个服务的定义,每个服务包含一个或多个容器,可以指定容器的镜像、端口映射、挂载卷、环境变量、依赖关系等。

docker compose up 
docker compose down 
docker compose ps 
docker compose logs 
docker compose exec 
docker compose restart 

基于python和redis的compose案例

[root@xia ~] [root@xia ~] 

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 Docker Compose! I have been seen {} times.\n'.format(count) 
flask redis 
 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"] 
  • 指定基础镜像python3.7
  • 将工作目录设置为 /code
  • 设置命令使用的环境变量
  • 安装 gcc 和其他依赖项
  • 复制并安装 python 依赖项
  • 暴露端口 5000
  • 将项目中的当前目录复制到容器中的工作目录。…
  • 将容器的默认命令设置为 flask run
version: "3.9" services: web: build: . ports: - "8000:5000" redis: image: "redis:alpine" 

其中:
web服务会使用当前目录Dockerfile文件构建的镜像,并且使用8000端口映射到flask的5000端口,而redis使用官网的镜像。

[root@xia composetest] app.py docker-compose.yml Dockerfile requirements.txt [root@xia composetest] [+] Running 3/3 ✔ Network composetest_default Created 0.1s ✔ Container composetest-redis-1 Started 0.8s ✔ Container composetest-web-1 Started 0.8s 

使用compose搭建WordPress

[root@xia my_wordpress] services: db:  image: mariadb:10.6.4-focal   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: 
[root@xia my_wordpress] [+] Running 3/3 ✔ Network my_wordpress_default Cre... 0.1s ✔ Container my_wordpress-db-1 Star... 0.7s ✔ Container my_wordpress-wordpress-1 Started 0.8s 

原文链接:https://blog.csdn.net/qq_52589631/article/details/130415574?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168994567316782427435997%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168994567316782427435997&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-29-130415574-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

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享