当前位置: 首页 > news >正文

自做建材配送网站网站集约化 建设方案

自做建材配送网站,网站集约化 建设方案,西安酒店网站制作,网站建设后台和前端通过Dockerfile创建镜像 Docker 提供了一种更便捷的方式#xff0c;叫作 Dockerfile docker build命令用于根据给定的Dockerfile构建Docker镜像。docker build语法#xff1a; # docker build [OPTIONS] PATH | URL | -1. 常用选项说明 --build-arg#xff0c;设…通过Dockerfile创建镜像 Docker 提供了一种更便捷的方式叫作 Dockerfile docker build命令用于根据给定的Dockerfile构建Docker镜像。docker build语法 # docker build [OPTIONS] PATH | URL | -1. 常用选项说明 --build-arg设置构建时的变量 --no-cache默认false。设置该选项将不使用Build Cache构建镜像 --pull默认false。设置该选项总是尝试pull镜像的最新版本 --compress默认false。设置该选项将使用gzip压缩构建的上下文 --disable-content-trust默认true。设置该选项将对镜像进行验证 --file, -fDockerfile的完整路径默认值为‘PATH/Dockerfile’ --isolation默认--isolationdefault即Linux命名空间其他还有process或hyperv --label为生成的镜像设置metadata --squash默认false。设置该选项将新构建出的多个层压缩为一个新层但是将无法在多个镜像之间共享新层设置该选项实际上是创建了新image同时保留原有image。 --tag, -t镜像的名字及tag通常name:tag或者name格式可以在一次构建中为一个镜像设置多个tag --network默认default。设置该选项Set the networking mode for the RUN instructions during build --quiet, -q 默认false。设置该选项Suppress the build output and print image ID on success --force-rm默认false。设置该选项总是删除掉中间环节的容器 --rm默认--rmtrue即整个构建过程成功后删除中间环节的容器示例 docker build -t newrain/bbauto:v2.1 .docker build 是docker创建镜像的命令 -t 是标识新建的镜像属于 newrain的 bbauto镜像 v2 是tag .是用来指明 我们的使用的Dockerfile文件当前目录的2.1、 创建镜像所在的文件夹和Dockerfile文件 [rootdocker ~]# mkdir sinatra [rootdocker ~]# cd sinatra/ [rootdocker sinatra]# touch Dockerfile2.2、 在Dockerfile文件中写入指令每一条指令都会更新镜像的信息例如 [rootdocker sinatra]# vim Dockerfile #This is a comment FROM daocloud.io/library/centos:7 MAINTAINER newrain newraindocker RUN yum install -y wget RUN touch a.txt RUN mkdir /test格式说明 命令要大写#是注解。 每一个指令后面需要跟空格语法。 FROM 命令是告诉docker 我们的镜像什么从哪里下载。 MAINTAINER 是描述 镜像的创建人。 maintainer RUN 命令是在镜像内部执行。就是说他后面的命令应该是针对镜像可以运行的命令。2.3、创建镜像 命令 # docker build -t newrain/centso:7 . docker build 是docker创建镜像的命令详细执行过程 [rootdocker sinatra]# docker build -t newrain/centos:7 . Sending build context to Docker daemon 2.048kB Step 1/4 : FROM daocloud.io/library/centos latest: Pulling from library/centos d8d02d457314: Pull complete Digest: sha256:a36b9e68613d07eec4ef553da84d0012a5ca5ae4a830cf825bb68b929475c869 Status: Downloaded newer image for daocloud.io/library/centos:latest--- 67fa590cfc1c Step 2/4 : MAINTAINER newrain newraindocker--- Running in aab3d80939d8 Removing intermediate container aab3d80939d8--- 12bae7d75a23 Step 3/4 : RUN yum update yum install -y epel*--- Running in ad83c387c60f Loaded plugins: fastestmirror, ovl Determining fastest mirrors* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com Resolving Dependencies -- Running transaction check --- Package audit-libs.x86_64 0:2.8.4-4.el7 will be updated --- Package audit-libs.x86_64 0:2.8.5-4.el7 will be an update2.4、创建完成后从镜像创建容器 前后端分离项目 前后端分离项目 ruoyi java spring boot maven vue nodejs 浏览器 nginx 前端 后端 nginx 代码 配置文件 java java包 maven 打包java node 打包前端 mysql 数据导入 redis nginx 代码 配置文件 java java包 maven 打包java node 打包前端 mysql 数据导入 redis git clone https://gitee.com/y_project/RuoYi-Vue.git cd RuoYi-Vue 1、准备数据库 docker run -itd --name ruoyi-mysql -v ./sql:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD123456 -e MYSQL_DATABASEry-vue mysql:5.7 --character-set-serverutf8mb4 --collation-serverutf8mb4_unicode_ci 2、准备redis docker run -itd --name ruoyi-redis 3、准备打包java cd RuoYi-Vue docker run -it --rm -v .:/opt/app -v /root/.m2:/root/.m2 -w /opt/app maven:3.8.8-sapmachine-11 mvn package 4、准备打包前端 cd ruoyi-ui docker run -it --rm -v .:/opt/app -w /opt/app node:18.20.3-alpine3.20 /bin/sh -c “npm install --registry http://registry.npmmirror.com npm run build:prod” 5、打包好的内容 java ruoyi-admin/target 前端 ruoyi-ui/dist 6、整理打包好的内容 mkdir -p /opt/ruoyi-xa2401/{ruoyi-java,ruoyi-nginx} cp ruoyi-admin/target/java包 /opt/ruoyi-xa2401/ruoyi-java vim /opt/ruoyi-xa2401/ruoyi-java/Dockerfile FROM java:8u111-jdk COPY ./ruoyi-admin.jar /opt CMD [“java”,“-jar”,“/opt/ruoyi-admin.jar”] cp -r ruoyi-ui/dist /opt/ruoyi-xa2401/ruoyi-nginx cp -r nginx.conf /opt/ruoyi-xa2401/ruoyi-nginx # nginx配置文件在最后面 vim opt/ruoyi-xa2401/ruoyi-nginx/Dockerfile FROM nginx:1.16.1 COPY dist /usr/share/nginx/dist COPY nginx.conf /etc/nginx/nginx.conf CMD [“nginx”,“-g”,“daemon off;”] 7、构建镜像并运行 在java的目录执行java 在nginx目录执行nginx docker build -t ruoyi-java:1.0 . docker build -t ruoyi-nginx:1.0 . docker run -it --name ruoyi-java --rm --linkruoyi-mysql:mysql.ruoyi --linkruoyi-redis:redis.ruoyi ruoyi-java:v1.0 docker run -it --name ruoyi-nginx --linkruoyi-java:java.host -p 80:80 ruoyi-nginx:1.0 nginx配置文件 user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main $remote_addr - r e m o t e u s e r [ remote_user [ remoteu​ser[time_local] “KaTeX parse error: Double superscript at position 34: … ̲status b o d y b y t e s s e n t body_bytes_sent bodyb​ytess​enthttp_referer” ’ ‘“ h t t p u s e r a g e n t http_user_agent httpu​sera​genthttp_x_forwarded_for”’; access_log /var/log/nginx/access.log main; charset utf-8; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096;include /etc/nginx/mime.types; default_type application/octet-stream;server {listen 80;server_name localhost;#charset koi8-r;#access_log /var/log/nginx/host.access.log main;location / {root /usr/share/nginx/dist;try_files $uri $uri/ /index.html;index index.html index.htm;}location /prod-api/{proxy_pass http://java.host:8080/; #注意这里的写法proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}} 总结 Dockerfile 在执行命令的时候必须在dockerfile这个目录下才可以会从这个目录找Dockerfile 默认的是Dockerfile ,如果选择其他文件需要加参数 docker build -t myss:1.0 -f ./Dockerfiletest . .是构建上线关系的为了构建镜像 在构建的时候退出了有断点续传 ​ RUN里面命令都没有缓存 CMD和ENTRYPOINT区别 面试题 1、dockerfile中都有哪些语法 2、add和copy有什么区别 宿主机路径 镜像路径 copy是吧宿主机路径复制到镜像路径里面 add是吧宿主机复制过去并解压 如果下载的是url 的话就不会解压 3、CMD和entrypoint的区别 都是在启动容器的时候执行的 如果在Dockerfile定义CMD 执行docker run -it test:1 echo 123 然后查看docker ps -a那个命令就会出现也就是覆盖CMD里面的命令 如果是entrypoint 执行 docker run -it test:1 echo 123就会添加到后面 我们应该先写entrypoint 然后写cmd 4、dockerfile优化 编译一个简单的nginx成功以后发现好几百M。 1、RUN 命令要尽量写在一条里每次 RUN 命令都是在之前的镜像上封装只会增大不会减小2、每次进行依赖安装后记得yum clean all【centos】 #yum clean all 清除缓存中的rpm头文件和包文件3、选择比较小的基础镜像。alpineD里面的命令 如果是entrypoint 执行 docker run -it test:1 echo 123就会添加到后面 我们应该先写entrypoint 然后写cmd 4、dockerfile优化 编译一个简单的nginx成功以后发现好几百M。 1、RUN 命令要尽量写在一条里每次 RUN 命令都是在之前的镜像上封装只会增大不会减小2、每次进行依赖安装后记得yum clean all【centos】 #yum clean all 清除缓存中的rpm头文件和包文件3、选择比较小的基础镜像。alpine
http://www.hkea.cn/news/14276438/

相关文章:

  • 如何提高网站浏览量平面设计师需要学习什么
  • 怎么样建公司网站wordpress如何添加tdk
  • 网站建设的结论和体会网站设计要求 优帮云
  • 国外的服务器网站pycharm 做网站
  • 苏州网站托管服务器网站打不开
  • vue做社区网站wordpress 模板挂马
  • 石家庄网站托管南充阆中网站建设
  • 预告网站正在建设中网上电商平台
  • 做网站开发 甲方提供资料wordpress博客主题 m1
  • 宜昌十堰网站建设哪家好外贸行业的现状分析及发展趋势
  • 福州公交集团网站建设建设规范文件在哪个网站发布
  • 郑州网站建设、网站开发属于知识产权吗
  • 访问失效链接 如何删除 网站维护安居客二手房出售信息
  • 广告设计网站哪个好业之峰家装公司地址
  • 网站备案要多少钱学动漫有什么出路
  • 三水网站开发查不到备案的网站
  • 浅谈博物馆网站建设意义网站开发编程入门学习
  • 免费申请域名的网站青岛市建设监理网站
  • 自己怎么做网站的聚合页面如何推广seo
  • 东莞企业网站建设营销重庆佳天下装饰公司电话
  • 地方网站系统网站开发 语言 架构 数据库
  • 学生作业 制作一个网站室内设计师证
  • 没网站域名可以做备案吗网站导航大全
  • 高端网站建设 案例西安注册公司在哪个网站
  • 道客网站建设推广小程序东莞大岭山建网站公司
  • 制作网站专业wordpress 添加音乐
  • xx汽车企业网站和信息化建设简单的wordpress模板
  • 铭万网站建设图库网站建设
  • 网站建设概述廉江市住房和城乡规划建设局网站
  • 北京网站建设 义创wordpress 对象存储