Docker Demo

需求

1
利用docker运行两个服务,并用nginx负载均衡

1.利用DockerFile创建两个镜像

创建blog-jar镜像

1
2
3
4
5
FROM java

COPY ./blog-0.0.1-SNAPSHOT.jar blog-0.0.1-SNAPSHOT.jar

CMD java -jar blog-0.0.1-SNAPSHOT.jar

创建blog-war镜像

1
2
3
4
5
6
7
8
9
10
11
12
FROM tomcat

WORKDIR /usr/local/tomcat/webapps/

COPY ./blog-0.0.1-SNAPSHOT.war .

RUN unzip blog-0.0.1-SNAPSHOT.war

WORKDIR /usr/local/tomcat

EXPOSE 8080

nginx配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
user  nginx;
worker_processes 1;

events {
worker_connections 1024;
}

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

sendfile on;

keepalive_timeout 65;

upstream hashserver{
ip_hash;
server 47.98.131.180:8090;
server 47.98.131.180:9090;
}
server {
listen 80;
server_name 47.98.131.180;
location /TestWeb {
root /usr/share/nginx/wwwroot/;
index index.html index.htm;
}
location /blog-0.0.1-SNAPSHOT {
proxy_pass http://hashserver;
}

}

}

2.利用docker-compose打包运行镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
version: '3.1'
services:
blogwar:
image: "blog-war"
container_name: blog-war
build:
context: .
dockerfile: DockerfileWar
ports:
- 8090:8080

blogjar:
image: "blog-jar"
container_name: blog-jar
build:
context: .
dockerfile: DockerfileJar
ports:
- 9090:8080

nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 81:80
volumes:
- ../nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- ../nginx/wwwroot:/usr/share/nginx/wwwroot

3.使用docker-compose运行容器

1
docker-compose up -d //守护态运行