0


windows 搭建docker 以及部署前后端项目及程序,对所需目录挂载nginx进行配置显示

一.windwos安装docker

1.我们在电脑上进行搜索 ,启用或者关闭windows功能

  1. 如果没有 Hype-V的话,具体添加步骤如下:
    在本地创建一个.bat文件,内容为:
  1. pushd "%~dp0"
  2. dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
  3. for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
  4. del hyper-v.txt
  5. Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

保存为.bat文件,然后右键,以管理员身份运行。

等待安装好之后,最后一步点击Y。完成安装。
然后以管理员身份运行powershell.这个其实就是cmd的升级版,cmd大家应该很熟悉,就是windows下的命令行工具,就跟我们的linux的命令行逸一样,只是windows使用更多的是图形化界面,面向的用户群体比较广。
回到正文,在power shell中执行以下几个命令:

  1. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

该命令是启动WSL。WSL是linux操作系统内核的一些组件,其实我们虽然是在windows下进行安装docker 实际上我们的docker还是跑在了Linux上的,这就是为什么我们需要用WSL的原因。

上面的命令执行完成之后,执行下面的语句:

  1. dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

上面的命令是启动虚拟机的功能。
完成之后重启电脑。

重启电脑完成之后就会看到Hyper已经存在 我们对它进行勾选

3.在启用或关闭windows功能中打开windows相关功能,将适用于linux的windows子系统进行勾选

  1. 下载WSL软件,并安装

运行windows的终端,输入wsl --list --online选择要安装的版本。

我选择的ubuntu20.04进行安装,在终端中输入

  1. wsl --install -d Ubuntu-20.04

wsl --install -d Ubuntu-20.04

等待安装结束。如果安装失败,可以手动下载离线包安装:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

安装完毕后,可以在终端输入wsl进行检查。

5.下载Docker

来到Docker官网:Get Started | Docker

软件安装完毕后出现绿色则安装成功:

  1. 验证安装

打开终端,输入docker --version,可以查看版本信息,安装完毕。

二.Nginx挂载本地显示文件

因为项目所要对本地目录图片进行操作展示,docker运行的话我想到的方法只能是挂载配合nginx进行显示

  1. # E:/FTP 为我本地目录文件 /var/car_image 为挂载之后本地目录的位置
  2. docker run -d -p 80:80 -v E:/FTP:/var/car_image nginx

当我们挂载之后去容器目录/etc/nginx配置里找到nginx.conf

然后加入下列代码

  1. # /car_image/ 为浏览器输入路径(别名)
  2. # /var/car_image/ 为实际存在的路径
  3. # autoindex on; 允许访问目录
  4. server {
  5. location /car_image/ {
  6. alias /var/car_image/;
  7. autoindex on;
  8. }

然后保存重新启动

我们可以使用命令重新启动容器

  1. docker restart 容器id或者容器名字

也可以点击这个按钮来进行重启

接下来我们可以在浏览器输入ip地址加端口以及我们所配置的目录,效果如下

三.前端代码进行打包部署

我们在前端启动项目命令行输入

  1. npm run build

前端项目会生产一个文件夹,我们新建一个文件夹,把生产的前端代码包放进去,如图所示圈住的是我的前端生产代码文件夹

我们接下来编写Dockerfile

  1. FROM nginx
  2. # 安装 tzdata 包,并设置上海时区
  3. RUN apt-get update && \
  4. apt-get install -y --no-install-recommends tzdata && \
  5. ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
  6. echo "Asia/Shanghai" > /etc/timezone
  7. RUN rm /etc/nginx/conf.d/default.conf
  8. ADD default.conf /etc/nginx/conf.d/
  9. COPY cxsb/ /usr/share/nginx/html/

接下来编写配置文件default.conf

  1. server {
  2. listen 8080;
  3. server_name 127.0.0.1; # 修改为docker服务宿主机的ip
  4. location / {
  5. root /usr/share/nginx/html;
  6. index index.html index.htm;
  7. try_files $uri $uri/ /index.html =404;
  8. }
  9. error_page 500 502 503 504 /50x.html;
  10. location = /50x.html {
  11. root html;
  12. }
  13. }

编写完成后我们进入到根目录对代码进行打包

  1. # vue_res 为自己定义名称
  2. docker build -t vue_res .

我们可以看到我们的镜像已经打包完成

接下来启动容器

  1. # --name 后面所对应的为容器名字 -d是后台运行 -p为映射端口 vue_car 为镜像名字 也可以使用镜像id
  2. docker run --name vue_res -d -p:8080:8080 vue_car

打开浏览器输入127.0.0.1:8080 我们可以看到页面如下 已经启动完成,前端项目打包部署完成

四. 后端java jar包进行打包部署

新建一个文件夹,然后将所需文件放到文件夹里面

编写后端Dockerfile

  1. # 使用官方的 OpenJDK 18 作为基础镜像
  2. FROM openjdk:18
  3. # 设置时区为中国标准时间
  4. ENV TZ=Asia/Shanghai
  5. # 将 JAR 包复制到容器的 /java_car 目录下
  6. COPY ruoyi-admin.jar /java_car/ruoyi-admin.jar
  7. # 将配置文件复制到容器的 /java_car/config 目录下
  8. COPY application.yml /java_car/config/application.yml
  9. COPY application-druid.yml /java_car/config/application-druid.yml
  10. # 设置工作目录为 /java_car
  11. WORKDIR /java_car
  12. # 运行 Java 应用程序
  13. CMD ["java", "-jar", "ruoyi-admin.jar"]
  14. # 运行 Java 应用程序,指定配置文件路径
  15. CMD ["java", "-jar", "ruoyi-admin.jar", "--spring.config.location=classpath:/application.yml,file:/java_car/config/application.yml", "--spring.config.additional-location=file:/java_car/config/application-druid.yml"]

步骤跟前端一样,我们进行build进行打包

  1. docker build -t java_car .

镜像运行命令

  1. docker run --name java_car -d -p 81:81 java_car

至此我们的java后端代码就部署完成

五. python程序进行打包

将我们所需文件放到一个目录里

Dockerfile如下

  1. # 使用 python:3.7 作为基础镜像
  2. FROM python:3.7
  3. # 安装 tzdata 包,并设置上海时区
  4. RUN apt-get update && \
  5. apt-get install -y --no-install-recommends tzdata && \
  6. ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
  7. echo "Asia/Shanghai" > /etc/timezone
  8. RUN mkdir /Timed_clear
  9. # 将python程序添加到镜像
  10. ADD Timing.py /Timed_clear/
  11. # 将项目依赖添加到镜像
  12. ADD requirements.txt /Timed_clear/
  13. WORKDIR /Timed_clear
  14. RUN pip install -r requirements.txt
  15. # 指定脚本运行时执行的命令,这里的配置等于 python Timing.py
  16. ENTRYPOINT ["python", "Timing.py"]
  1. # 打包python程序
  2. docker build -t times_clear

由于我们所需代码需要对本地图片进行操作,所以容器运行的时候得对目录进行挂载

  1. # 对本地图片进行挂载
  2. docker run --name times_clear -d -v E:/:/var/car_image times_clear

之后进入文件更改我们获取目录位置为/var/car_image/以及文件目录后缀进行获取

下面dockerfile 可忽略(作为记载)

  1. # python版本,可根据需求进行修改
  2. FROM python:3.7
  3. # 安装 tzdata 包,并设置上海时区
  4. RUN apt-get update && \
  5. apt-get install -y --no-install-recommends tzdata && \
  6. ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
  7. echo "Asia/Shanghai" > /etc/timezone
  8. # 创建工作目录 /image_docker,并将python程序和依赖添加到镜像
  9. RUN mkdir /image_docker
  10. ADD Image_ex.py /image_docker/
  11. ADD Socket_Client.py /image_docker/
  12. ADD requirements.txt /image_docker/
  13. # 设置工作目录为 /image_docker
  14. WORKDIR /image_docker
  15. # 安装 Python 依赖包
  16. RUN pip install --no-cache-dir -r requirements.txt
  17. # ENTRYPOINT 将 Socket_Client.py 设置为入口点程序
  18. ENTRYPOINT ["python", "Socket_Client.py"]
  19. # CMD 将 Image_ex.py 设置为默认执行的命令
  20. CMD ["python", "Socket_Client.py"]

六. Docker 界面化

  1. #拉取界面化镜像
  2. docker pull portainer/portainer-ce
  3. # 运行
  4. docker run -p 9000:9000 -p 8000:8000 --name portainer \
  5. --restart=always \
  6. -v /var/run/docker.sock:/var/run/docker.sock \
  7. -v /mydata/portainer/data:/data \
  8. -d portainer/portainer

容器自启动命令

  1. docker update --restart=always 容器名字或容器id
标签: docker 容器 运维

本文转载自: https://blog.csdn.net/m0_56659620/article/details/131807189
版权归原作者 迷糊小面包 所有, 如有侵权,请联系我们删除。

“windows 搭建docker 以及部署前后端项目及程序,对所需目录挂载nginx进行配置显示”的评论:

还没有评论