使用 Docker Compose 来编排部署LMTNR项目
使用 Docker Compose 来部署一个包含 Linux、MySQL、Tomcat、Nginx 和 Redis 的完整项目的例子。假设我们要部署一个简单的 Java Web 应用,并且使用 Nginx 作为反向代理服务器。
项目目录结构
首先需要确保 Docker 和docker-compose已经安装并正在运行。
docker --version
docker-compose -v
如果有不会的安装的,参考在linux系统上安装Docker和docker-compose-CSDN博客
下面开始实战演练docker-compose编排项目
第一步、创建项目目录my_project
mkdir my_project
进入项目目录
cd my_project
然后创建 docker-compose.yml 文件
vim docker-compose.yml
输入以下内容:
version: '3'
services:
mysql:
image: mysql:5.7
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: mydatabase
volumes:
- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql
ports:
- "3306:3306"
tomcat:
image: tomcat:9.0
container_name: tomcat
volumes:
- ./tomcat/webapps:/usr/local/tomcat/webapps
ports:
- "8080:8080"
depends_on:
- mysql
nginx:
image: nginx:latest
container_name: nginx
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
ports:
- "80:80"
depends_on:
- tomcat
redis:
image: redis:latest
container_name: redis
volumes:
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
ports:
- "6379:6379"
第二步、nginx配置
进入项目目录
cd my_project
创建nginx目录
mkdir nginx
进入nginx目录
cd nginx
创建default.conf文件
vim default.conf
输入以下内容:
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://tomcat:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
第三步、tomcat配置
返回my_project项目目录
cd -
创建tomcat/webapps/ROOT/ 目录
mkdir -p tomcat/webapps/ROOT/
进入tomcat/webapps/ROOT/ 目录
cd tomcat/webapps/ROOT/
创建index.jsp文件
vim index.jsp
输入以下内容:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
第四步、mysql数据库配置
返回my_project项目目录
cd -
创建mysql目录
mkdir mysql
进入mysql目录
cd mysql
创建文件init.sql
vim init.sql
输入以下内容:
CREATE DATABASE IF NOT EXISTS mydatabase;
USE mydatabase;
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
);
第五步、redis配置
返回my_project项目目录
cd -
创建redis目录
mkdir redis
进入redis目录
cd redis
创建文件redis.conf
vim redis.conf
输入以下内容:
bind 0.0.0.0
protected-mode no
port 6379
第六步、启动所有服务
在 my_project 目录下运行以下命令来启动所有服务
返回my_project项目目录
cd -
docker-compose up -d
这个命令会下载所需的镜像并启动所有服务。你可以通过访问 http://localhost /主机ip 来查看你的应用是否正常运行。如果一切正常,你应该会看到一个显示 "Hello, World!" 的页面。
命令执行结果
在浏览器进行访问
成功!