部署需求分析:
之前是将nginx、django、vue直接部署在服务器上,既然学了docker,试试怎么部署在docker中
1.环境准备
一台linux服务器 centos7
安装好docker systemctl start docker
vue代码
django后端代码
3.注意修改vue提交axaj请求的地址
修改vue接口代码文件/opt/07-luffy_project_01/src/restful/api.js
vue.js需要发送请求给django后端接口,改成容器的ip地址
sed -i "s/127.0.0.1/172.17.0.3/g" /opt/07-luffy_project_01/src/restful/api.js
然后重新打包vue的静态文件,生成dist目录,提供给nginx
nginx容器构建目录如下
nginx_docker 一级目录
├── CentOS-Base.repo 用于修改容器的yum源
├── dist 将本地的dist文件夹拷贝到容器内
├── Dockerfile 用于构建镜像
├── epel.repo 用于修改容器的yum源
└── nginx.conf 将本地的nginx.conf配置文件,拷贝到容器内,生效nginx配置
配置文件如下:
cat Dockerfile 内容如下
[root@web02 nginx_docker]# cat Dockerfile
FROM centos
MAINTAINER yugo
ADD CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
ADD epel.repo /etc/yum.repos.d/epel.repo
RUN yum clean all
RUN yum install nginx -y
COPY nginx.conf /etc/nginx/nginx.conf
COPY dist /opt/dist
EXPOSE 80
ENTRYPOINT nginx -g "daemon off;"
cat nginx.conf内容如下
[root@web02 nginx_docker]# cat nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name luffy_nginx.cn;
location / {
root /opt/dist;
index index.html;
}
}
server {
listen 8000;
server_name luffy_nginx.cn;
location / {
uwsgi_pass luffy_backend.cn:9000;
include uwsgi_params;
}
}
}
构建nginx镜像
docker build -t luffy_nginx .
运行nginx镜像,产生容器实例
docker run -d -p80:80 luffy_nginx
查看产生容器的ip地址信息,进行dnsmasq域名解析
docker inspect --format '{{ .NetworkSettings.IPAddress }}' 容器id
通过windows/Macos访问linux的ip地址,查看容器端口映射结果
此时已经配置好了nginx反向代理与vue的静态文件,开始配置后端代码!!!!