一、docker-compose基本语法
docker-compose是一个用于定义和运行多容器Docker应用程序的工具。它使用一个YAML文件来配置应用程序的服务,再使用命令行工具对这些服务进行操作。下面是docker-compose的基本语法:
创建/启动/停止/重启容器
docker-compose up [-d] # 创建并且启动容器,-d 表示后台运行
docker-compose start # 启动容器
docker-compose stop # 停止容器
docker-compose restart # 重启容器
其他操作
docker-compose ps # 查看当前应用的所有容器
docker-compose logs [-f] # 查看容器的日志,-f表示跟踪
docker-compose exec # 进入容器,例如:docker-compose exec web bash
构建镜像
docker-compose build # 构建镜像
docker-compose push # 推送镜像到仓库(需要配置)
上面是docker-compose的基本命令。下面我们来看看一个简单的docker-compose文件:
version: '3.7'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
该文件定义了两个服务,一个名为web,另一个名为redis。web服务是通过构建本地Dockerfile文件生成的,(.代表当前目录),暴露了5000端口,redis服务则使用了官方的redis alpine镜像。
二、示例
下面我们来看看两个具体的示例,这两个示例讲解了docker-compose在实际应用中的使用方法。
- 使用docker-compose构建Flask应用程序
假设我们有一个Flask应用程序,需要创建两个容器,一个运行Flask应用程序,另一个运行Redis缓存。我们可以使用docker-compose将这些容器定义在一个YAML文件中。具体实现步骤如下:
- 创建一个名为“MyFlaskApp”的Flask应用程序。
- 使用Redis作为缓存实现。
- 将Flask应用程序包含在Docker容器中,并将其与一个名为web的service绑定,绑定端口为5000。
- 将Redis容器与一个名为cache的service绑定,绑定端口为6379。
下面是docker-compose.yml文件的内容:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
command: python3 app.py
depends_on:
- cache
cache:
image: redis
ports:
- "6379:6379"
接下来执行下面的命令,启动应用程序:
$ docker-compose up -d
其中-d选项使服务在后台运行。
- 使用docker-compose运行WordPress
我们还可以使用docker-compose来运行WordPress。这需要我们创建一个YAML文件,指定WordPress和MySQL的Docker镜像,配置连接。具体步骤如下:
- 使用WordPress官方镜像,版本号为php8.0.3-apache。
- 使用MySQL官方镜像,版本号为5.7.22。
- 使用环境变量配置MySQL密码和数据库名称。
- 将WordPress容器和MySQL容器链接在一起。
下面是docker-compose.yml文件的内容:
version: '2'
services:
db:
image: mysql:5.7.22
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:php8.0.3-apache
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- "./wordpress:/var/www/html"
执行如下命令,启动应用程序:
$ docker-compose up -d
其中-d选项使服务在后台运行。然后就可以通过http://localhost:8000访问WordPress安装界面。
以上是docker-compose的基本语法和两个示例。有了这些基础知识,我们可以更好地应用docker-compose工具。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker-compose之基本语法解读 - Python技术站