【Docker】通过dockerfile构建Nginx镜像部署多Web应用
2023-09-11 14:19:57 时间
docker打包镜像
Dockerfile构建镜像
编写Dockerfile脚本
# 基于 nginx:latest 镜像而构建
FROM nginx:latest
COPY ./web1/ /var/app/web1/
COPY ./web2/ /var/app/web2/
COPY ./assets/ /var/app/assets/
COPY ./default.conf /etc/nginx/conf.d/default.conf
COPY ./nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
# 添加daemon off;配置可以让nginx在前台启动
# RUN echo "daemon off;" >> /etc/nginx/nginx.conf
CMD [ "nginx", "-g", "daemon off;" ]
构建镜像前的准备
根据上方的Dockerfile脚本在E:**\DockerImage文件夹下准备好所需内容
web1、web2、assets代表三个web应用
default.conf、nginx.conf代表nginx配置文件
执行Dockerfile脚本 构建镜像
1、Win + R 打开运行框 输入cmd 打开命令窗口
2、输入E:进入E盘符 输入 cd E:**\DockerImage 进入
// 打包镜像
docker build -t service:1.0 .
// 镜像导出
docker image save service:1.0 -o E:\**\DockerImage\service.taz
镜像导入
// 镜像导入
docker image load -i E:\**\DockerImage\service.taz
配置nginx.conf文件
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /var/app/web1;
index index.html index.htm;
}
location /web2 {
root /var/app;
index index.html index.htm;
}
location /assets {
root /var/app/;
index index.html index.htm;
}
location /app {
proxy_pass http://xx.x.xx.xx:xxxx/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
访问路径 xxxx为端口
http://location:xxxx/
http://location:xxxx/web2/
http://location:xxxx/assets/
http://location:xxxx/app/ 代理
Docker操作
查询index.html的路径
// 查看容器
docker ps
// 进入容器
docker exec -it 容器ID bash
// 查询下容器中 index.html 的路径
find / -name index.html
修改web1下ProjectConfig-72e0c4f7dd.json配置文件
// 查看容器
docker ps
// 进入容器
docker exec -it 容器ID bash
// 查询下容器中 "Project*.json" 的路径
find / -name "Project*.json"
// 输出内容
/var/app/web1/ProjectConfig-72e0c4f7dd.json
/var/app/web2/ProjectConfig-a877352052.json
// 退出容器
exit
// 将配置文件拷贝到当前文件夹
docker cp 容器ID:/var/app/web1/ProjectConfig-72e0c4f7dd.json ./
// 将修改后的配置文件拷贝容器中web1文件夹下
docker cp ./ProjectConfig-72e0c4f7dd.json 容器ID:/var/app/web1/
// 重启容器
docker restart 容器ID
修改nginx配置文件nginx.conf
// 查看容器
docker ps
// 进入容器
docker exec -it 容器ID bash
// 查询下容器中 "nginx.conf" 的路径
find / -name "nginx.conf"
// 输出内容
/etc/nginx/nginx.conf
// 退出容器
exit
// 将配置文件拷贝到当前文件夹
docker cp 容器ID:/etc/nginx/nginx.conf ./
// 将修改后的配置文件拷贝容器/etc/nginx/文件夹下
docker cp ./nginx.conf 容器ID:/etc/nginx/
// 重启容器
docker restart 容器ID
相关文章
- centos ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
- docker 应用篇————es[八]
- 运维基础之Docker(5)docker部署airflow
- 【GO】K8s 管理系统项目35[Docker方式–应用部署]
- Docker 入门 到部署Web 程序- (阿里面试常用的docker命令和优点)
- 在SAP云平台上部署和运行Docker应用
- 在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用
- Docker入门与应用系列(二)镜像管理
- 【云原生之Docker实战】使用docker部署Monica个人开源CRM系统
- 【云原生之Docker实战】使用docker部署Ghost个人博客系统
- 【云原生之Docker实战】使用docker部署kooteam在线团队协作工具
- 【云原生之Docker实战】使用docker部署webterminal堡垒机
- 【云原生之Docker实战】使用docker部署Snapdrop文件传输工具
- 【云原生之Docker实战】使用docker部署Notepad个人记事本工具
- 【云原生之Docker实战】使用docker部署家庭DOS游戏服务器
- 【云原生之Docker】使用docker部署talebook个人图书管理平台
- 【云原生之Docker实战】部署docker管理平台shipyard
- 【云原生之Docker实战】使用docker部署 Searxng个人搜索引擎平台
- 【云原生之Docker实战】使用docker部署Wiznote私人笔记系统
- 【云原生之Docker实战】使用Dockerfile构建docker镜像
- 【云原生之Docker实战】使用docker部署nacos平台
- 【最全最详细Docker】用docker部署mysql、tomcat、nginx、redis 环境部署