部署需求分析:html
以前是將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容器構建目錄以下vue
nginx_docker 一級目錄 ├── CentOS-Base.repo 用於修改容器的yum源 ├── dist 將本地的dist文件夾拷貝到容器內 ├── Dockerfile 用於構建鏡像 ├── epel.repo 用於修改容器的yum源 └── nginx.conf 將本地的nginx.conf配置文件,拷貝到容器內,生效nginx配置
配置文件以下:linux
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內容以下nginx
[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鏡像web
docker build -t luffy_nginx .
運行nginx鏡像,產生容器實例docker
docker run -d -p80:80 luffy_nginx
查看產生容器的ip地址信息,進行dnsmasq域名解析django
docker inspect --format '{{ .NetworkSettings.IPAddress }}' 容器id
經過windows/Macos訪問linux的ip地址,查看容器端口映射結果windows
此時已經配置好了nginx反向代理與vue的靜態文件,開始配置後端代碼!!!!後端