docker组合项目与MySQL,三个Tomcat和一个nginx容器都链接在一起。
运行:
$ docker-compose up
Containers:
./db / mysql-init.sql
,其中./ tomcat / webapps
中。该VIRTUAL_HOST
环境变量设置)和第三个容器的反向代理。docker-compose.yml
# MySql数据库容器和tomcat容器链接
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: nimda
MYSQL_DATABASE: example_db
MYSQL_USER: example_db_user
MYSQL_PASSWORD: example_db_pass
volumes:
- "./db:/docker-entrypoint-initdb.d"
# 第一个Tomcat容器的第一个节点
tomcat_1_node_1:
image: tomcat:latest
# 第一次启动tomcat的时候,环境变量好像没有被修改
environment:
VIRTUAL_HOST: localhost
VIRTUAL_PORT: 8080
JDBC_URL: jdbc:mysql://db:3306/example_db?connectTimeout=0&socketTimeout=0&autoReconnect=true
JDBC_USER: example_db_user
JDBC_PASS: example_db_pass
volumes:
- "./tomcat/webapps:/usr/local/tomcat/webapps"
links:
- db
# 第一个Tomcat容器的第二个节点
tomcat_1_node_2:
image: tomcat:latest
environment:
VIRTUAL_HOST: localhost
VIRTUAL_PORT: 8080
JDBC_URL: jdbc:mysql://db:3306/example_db?connectTimeout=0&socketTimeout=0&autoReconnect=true
JDBC_USER: example_db_user
JDBC_PASS: example_db_pass
volumes:
- "./tomcat/webapps:/usr/local/tomcat/webapps"
links:
- db
# 第二个Tomcat容器的第一个节点
tomcat_2_node_1:
image: tomcat:latest
environment:
VIRTUAL_HOST: localhost
VIRTUAL_PORT: 8080
JDBC_URL: jdbc:mysql://db:3306/example_db?connectTimeout=0&socketTimeout=0&autoReconnect=true
JDBC_USER: example_db_user
JDBC_PASS: example_db_pass
volumes:
- "./tomcat/webapps:/usr/local/tomcat/webapps"
links:
- db
# nginx容器,可跨3个tomcat容器/ 2个虚拟主机自动创建负载均衡器/反向代理。
nginx:
image: jwilder/nginx-proxy:latest
ports:
- "80:80"
volumes:
- "/var/run/docker.sock:/tmp/docker.sock:ro"
links:
- tomcat_1_node_1
- tomcat_1_node_2
- tomcat_2_node_1
mysql-init.sql
-- 先判断是否存在这个数据库,有的话直接删除
use example_db;
--
-- 创建表'example_table'
--
DROP TABLE IF EXISTS `example_table`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `example_table` (
`id` bigint(20) NOT NULL,
`INS_DATE` datetime NOT NULL,
`NAME` varchar(255) NOT NULL,
`VALUE` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- 给表插入数据
--
LOCK TABLES `example_table` WRITE;
/*!40000 ALTER TABLE `example_table` DISABLE KEYS */;
INSERT INTO `example_table` (id, INS_DATE, NAME, VALUE)
VALUES
( 1, now(), 'example-1', 'value-1'),
( 2, now(), 'example-2', 'value-2'),
( 3, now(), 'example-3', 'value-3'),
( 4, now(), 'example-4', 'value-4'),
( 5, now(), 'example-5', 'value-5'),
( 6, now(), 'example-6', 'value-6'),
( 7, now(), 'example-7', 'value-7'),
( 8, now(), 'example-8', 'value-8'),
( 9, now(), 'example-9', 'value-9');
/*!40000 ALTER TABLE `example_table` ENABLE KEYS */;
UNLOCK TABLES;
web项目不再一一展出,链接中会给
https://github.com/ifeng2025/docker-.git
链接:https://pan.baidu.com/s/14-Gt2QXJmf_9_zYKxJn_zg 密码:ey21