一.windwos安装docker
2. 如果没有 Hype-V的话,具体添加步骤如下:
在本地创建一个.bat文件,内容为:
pushd "%~dp0"
dir /b %SystemRoot%servicingPackages*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%servicingPackages%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
等待安装好之后,最后一步点击Y。完成安装。
然后以管理员身份运行powershell.这个其实就是cmd的升级版,cmd大家应该很熟悉,就是windows下的命令行工具,就跟我们的linux的命令行逸一样,只是windows使用更多的是图形化界面,面向的用户群体比较广。
回到正文,在power shell中执行以下几个命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
该命令是启动WSL。WSL是linux操作系统内核的一些组件,其实我们虽然是在windows下进行安装docker 实际上我们的docker还是跑在了Linux上的,这就是为什么我们需要用WSL的原因。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启电脑完成之后就会看到Hyper已经存在 我们对它进行勾选
3.在启用或关闭windows功能中打开windows相关功能,将适用于linux的windows子系统进行勾选
运行windows的终端,输入wsl —list —online选择要安装的版本。
wsl --install -d Ubuntu-20.04
等待安装结束。如果安装失败,可以手动下载离线包安装:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
来到Docker官网:Get Started | Docker
软件安装完毕后出现绿色则安装成功:
6. 验证安装
打开终端,输入docker —version,可以查看版本信息,安装完毕。
二.Nginx挂载本地显示文件
因为项目所要对本地目录图片进行操作展示,docker运行的话我想到的方法只能是挂载配合nginx进行显示
# E:/FTP 为我本地目录文件 /var/car_image 为挂载之后本地目录的位置
docker run -d -p 80:80 -v E:/FTP:/var/car_image nginx
当我们挂载之后去容器目录/etc/nginx配置里找到nginx.conf
# /car_image/ 为浏览器输入路径(别名)
# /var/car_image/ 为实际存在的路径
# autoindex on; 允许访问目录
server {
location /car_image/ {
alias /var/car_image/;
autoindex on;
}
docker restart 容器id或者容器名字
接下来我们可以在浏览器输入ip地址加端口以及我们所配置的目录,效果如下
三.前端代码进行打包部署
npm run build
前端项目会生产一个文件夹,我们新建一个文件夹,把生产的前端代码包放进去,如图所示圈住的是我的前端生产代码文件夹
FROM nginx
# 安装 tzdata 包,并设置上海时区
RUN apt-get update &&
apt-get install -y --no-install-recommends tzdata &&
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
echo "Asia/Shanghai" > /etc/timezone
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/
COPY cxsb/ /usr/share/nginx/html/
server {
listen 8080;
server_name 127.0.0.1; # 修改为docker服务宿主机的ip
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# vue_res 为自己定义名称
docker build -t vue_res .
接下来启动容器
# --name 后面所对应的为容器名字 -d是后台运行 -p为映射端口 vue_car 为镜像名字 也可以使用镜像id
docker run --name vue_res -d -p:8080:8080 vue_car
打开浏览器输入127.0.0.1:8080 我们可以看到页面如下 已经启动完成,前端项目打包部署完成
四. 后端java jar包进行打包部署
# 使用官方的 OpenJDK 18 作为基础镜像
FROM openjdk:18
# 设置时区为中国标准时间
ENV TZ=Asia/Shanghai
# 将 JAR 包复制到容器的 /java_car 目录下
COPY ruoyi-admin.jar /java_car/ruoyi-admin.jar
# 将配置文件复制到容器的 /java_car/config 目录下
COPY application.yml /java_car/config/application.yml
COPY application-druid.yml /java_car/config/application-druid.yml
# 设置工作目录为 /java_car
WORKDIR /java_car
# 运行 Java 应用程序
CMD ["java", "-jar", "ruoyi-admin.jar"]
# 运行 Java 应用程序,指定配置文件路径
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"]
docker build -t java_car .
镜像运行命令
docker run --name java_car -d -p 81:81 java_car
五. python程序进行打包
将我们所需文件放到一个目录里
# 使用 python:3.7 作为基础镜像
FROM python:3.7
# 安装 tzdata 包,并设置上海时区
RUN apt-get update &&
apt-get install -y --no-install-recommends tzdata &&
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
echo "Asia/Shanghai" > /etc/timezone
RUN mkdir /Timed_clear
# 将python程序添加到镜像
ADD Timing.py /Timed_clear/
# 将项目依赖添加到镜像
ADD requirements.txt /Timed_clear/
WORKDIR /Timed_clear
RUN pip install -r requirements.txt
# 指定脚本运行时执行的命令,这里的配置等于 python Timing.py
ENTRYPOINT ["python", "Timing.py"]
# 打包python程序
docker build -t times_clear
由于我们所需代码需要对本地图片进行操作,所以容器运行的时候得对目录进行挂载
# 对本地图片进行挂载
docker run --name times_clear -d -v E:/:/var/car_image times_clear
之后进入文件更改我们获取目录位置为/var/car_image/以及文件目录后缀进行获取
下面dockerfile 可忽略(作为记载)
# python版本,可根据需求进行修改
FROM python:3.7
# 安装 tzdata 包,并设置上海时区
RUN apt-get update &&
apt-get install -y --no-install-recommends tzdata &&
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
echo "Asia/Shanghai" > /etc/timezone
# 创建工作目录 /image_docker,并将python程序和依赖添加到镜像
RUN mkdir /image_docker
ADD Image_ex.py /image_docker/
ADD Socket_Client.py /image_docker/
ADD requirements.txt /image_docker/
# 设置工作目录为 /image_docker
WORKDIR /image_docker
# 安装 Python 依赖包
RUN pip install --no-cache-dir -r requirements.txt
# ENTRYPOINT 将 Socket_Client.py 设置为入口点程序
ENTRYPOINT ["python", "Socket_Client.py"]
# CMD 将 Image_ex.py 设置为默认执行的命令
CMD ["python", "Socket_Client.py"]
六. Docker 界面化
#拉取界面化镜像
docker pull portainer/portainer-ce
# 运行
docker run -p 9000:9000 -p 8000:8000 --name portainer
--restart=always
-v /var/run/docker.sock:/var/run/docker.sock
-v /mydata/portainer/data:/data
-d portainer/portainer
容器自启动命令
docker update --restart=always 容器名字或容器id
原文地址:https://blog.csdn.net/m0_56659620/article/details/131807189
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_25074.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!