在previous project中,我们与Docker部署了一个容器化的应用程序,该应用程序涉及一些过程,例如创建容器(MySQL Server,Application和Apache Server),使用Docker文件,创建网络和运行几个Docker命令,并在命令行接口(CLI)。这个过程可能变得太乏味了。今天,我们将以更可靠,高效,更简单的方式使用Docker Compose来构建以前的项目理解和部署我们的应用程序容器。
Docker作曲家
Compose是Docker的工具,用于构建由多个Docker容器组成的应用程序。
组合中的容器称为服务。这些服务是用一个YAML文件来定义的,该文件指定了您的应用程序的配置(例如,Docker-compose.yml),然后使用一个命令创建并启动您的多包装。
先决条件
- Docker and compose安装在您的Ubuntu实例或PC的docker desktop上。
- 对docker and containers的基本理解。
- 基本的Linux理解将是有帮助的。
- AWS free tier here
让我们开始!
与Docker合作的部署
要跟随,克隆应用程序的here并将目录更改为工具。
# Clone repo
git clone https://github.com/darey-devops/tooling.git
# change directory
cd tooling/
创建文件,命名 tooling_app.yaml 并粘贴以下代码段。
version: "3.9"
services:
tooling_frontend:
build: .
ports:
- "5000:80"
volumes:
- tooling_frontend:/var/www/html
depends_on:
- db
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: <The database name required by Tooling app >
MYSQL_USER: <The user required by Tooling app >
MYSQL_PASSWORD: <The password required by Tooling app >
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
- ./html/tooling_db_schema.sql:/docker-entrypoint-initdb.d/tooling_db_schema.sql
volumes:
tooling_frontend:
db:
在上面的配置文件中更新mysql_database,mysql_user和mysql_password。
- 版本: 指定Docker的版本构成使用
- 服务: 要创建和运行的容器
- 构建: 指定用于从源创建容器图像的构建配置。
- 端口: 指定主机端口到容器端口的映射
- 卷: 指定存储或数据
- 依赖性_on: express Services之间的依赖性
- 图像: 指定要运行的Docker图像。
- 重新启动: 重新启动容器
在服务下,您拥有前端应用程序和MySQL数据库。 YAML文件还使用目录中的DockerFile配置。DockerFile指定了前端和Apache Server的配置。
确保您的更新html/db_conn.php
。
mysql_ip mysql ip地址“ db”来自组合文件
MySQL_USER MySQL用户导出为环境变量
MySQL_Pass MySQL密码的用户被导出为环境可变性
mysql_dbname mysql databse名称“ toolingdb”
允许Docker退出并再次登录
sudo usermod -aG docker ubuntu
运行命令启动容器
# -f specifies the Compose configuration files
docker compose -f tooling_app.yaml up
验证组合是否处于运行状态:
docker compose ls
恭喜!!!您已经成功地使用了Docker Compose。 PPE果实水果:他们。
一如既往,我期待您对本文的想法。请随时发表评论!