docker使用docker-compose实现mysql+tomcat+nginx容器启动

本文是一个具体项目的实现
1.使用docker-compose连编启动各个容器,并实现各个容器的互联。
2.使用独立域名访问项目。
3.项目连接数据库。

1在做项目之前:要将host文件进行修改。
将我们的ip地址与域名进行绑定。
具体效果如图:
在这里插入图片描述
2.将自己的项目放置到centos中/tomcat/webapps/index文件夹下。
3.编写nginx.conf放置到/nginx/conf/文件夹下。
具体nginx.conf的内容如下:

user nginx;

worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
}


http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;



upstream tomcat {
}
server {
listen 80;
server_name www.skedu.com;
location / {
proxy_pass http://skedu.com:8080;
index index.html index.htm;
}	
}

include /etc/nginx/conf.d/*.conf;
}

注意:上面要修改的内容一个是server_name 要改成你的域名。另一个要修改的内容是proxy_pass 。模板如下:proxy_pass http://nginx和tomcat的内部连接名:tomcat的端口;
我的是:

server {
listen 80;
server_name www.skedu.com;
location / {
proxy_pass http://skedu.com:8080;
index index.html index.htm;
}	

4.项目中mysql的连接地址要是tomcat和mysql的内部连接地址。
5…编写docker-compose.yml文件:

version: "3"
services:
  mysql:
    container_name: mysql
    image: mysql:5.7.25                                                              
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=123456
  nginx:
    container_name: nginx
    image: nginx
    ports:
      - 80:80
    volumes:
      - /nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro                       
    external_links:
      - tomcat:skedu.com      
  tomcat:
    container_name: tomcat
    image: tomcat
    ports:
      - 8080:8080
    volumes:
      - /tomcat/webapps/index:/usr/local/tomcat/webapps/ROOT
    external_links:
      - mysql:db.skedu.com      
                                  

建议初学者直接使用这个模板来修改即可
**注意:**这里面需要注意的是:
1.nginx与tomcat的连接名为skedu.com,这个连接名用于前面的在nginx中修改nginx.conf文件中的proxy_pass http://skedu.com:8080;
2.tomcat与mysql的连接名为:这个连接名主要是用于项目中的mysql数据库连接中使用。
3.挂载tomcat的数据卷时,数据卷在容器中的位置一定要是在webapps的ROOT目录下。

你可能感兴趣的:(docker使用docker-compose实现mysql+tomcat+nginx容器启动)