一 部署jar
目录树结构如下:
├── docker-compose-java.yml
└── demo
├── Dockerfile
└── demo.jar
1.创建Dockerfile
# vim Dockerfile
From java:8
ADD demo.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
生成镜像(测试是否可用) # docker build -t config:0.1 .
2.然后在docker-compose-java.yml 中添加内容如下:
version: '3'
services:
demo:
container_name: demo
image: demo:1.0
build: ./demo
ports:
- "8080:8080"
1.如果要自动扩缩容,不能设置 container_name ports
2.实际部署的时候需要把相关日志文件目录映射到宿主机(参考nginx部署)
启动(‐d可以后台启动):
docker‐compose -f docker-compose-java.yml up
修改了镜像,重新构建
docker-compose -f docker-compose-java.yml up --build -d
3.验证
二 部署Nginx
1.选择需要使用的版本【如果不指定版本默认为latest版,每次部署的时候都会拉取最新版本】
https://hub.docker.com/_/nginx?tab=tags&page=1&ordering=last_updated
2.拉取一个所需要的稳定版(这里使用1.9.5)
# 拉取
docker pull nginx:1.9.5
#查看是否拉取成功
docker images
3.测试运行(主要目的是为了获取一份配置文件)
#运行
docker run --name nginx-demo -p 80:80 -d nginx
# 查看运行容器
docker ps -a
4,将nginx关键目录映射到本机(该步骤是为了获取一份该版本的配置文件,如果你已经有这样的配置文件可以忽略)
#首先在本机创建nginx的一些文件存储目录
mkdir -p /root/nginx/{www,logs,conf,vhost}
#查看容器ID
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f3d5744b4988 nginx "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp nginx-demo
#将nginx-demo容器配置、页面文件copy到本地
docker cp f3d5744b4988:/etc/nginx/nginx.conf /root/nginx/conf
docker cp f3d5744b4988:/usr/share/nginx/html /root/nginx/www
#删除容器,接下来重新部署
# docker rm -f f3d5744b4988
5.docker-compose方式部署
# 为了验证本地目录挂载成功(参考步骤6)
echo nginx-demo >> /root/nginx/www/html/index.html
# vim docker-compose-nginx.yml
version: '3'
services:
nginx-demo:
image: nginx:1.9.5
container_name: nginx-demo
restart: always
ports:
- 80:80
- 443:443
volumes:
- /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /root/nginx/vhost:/etc/nginx/conf.d
- /root/nginx/www/html:/usr/share/nginx/html
- /root/nginx/logs:/var/log/nginx
# -d 后台运行 -f 指定文件名称
docker-compose -f docker-compose-nginx.yml up -d
说明:
- 挂载目录(volumes)用绝对路径,这样docker-compose-nginx.yml文件可以放在任何地方
- 运行 -f 指定文件名称(默认docker-compose.yml 可不用该参数)
6.验证
1)访问本机IP,如果看到下面的文字,说明目录挂载成功
2)查看日志目录(产生日志文件,说明挂载成功)
3)配置项目
vim /root/nginx/vhost/demo.conf
upstream www.demo.com{
server 192.168.44.130:8080 weight=1;
}
server {
listen 80;
server_name www.demo.com;
location / {
proxy_pass http://www.demo.com;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
#fastcgi_param HTTPS on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
验证