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

建设网站主机可以用吗驾校推广网络营销方案

建设网站主机可以用吗,驾校推广网络营销方案,网络科技有限公司电话,甘肃做网站的公司有哪些目录 一.Docker镜像管理 1.Docker镜像结构 2.Dockerfile介绍 二.Dockerfile实施 1.构建nginx容器 2.构建Tomcat容器 3.构建mysql容器 三.Dockerfile语法注意事项 1.指令书写范围 2.基础镜像选择 3.文件操作注意 4.执行命令要点 5.环境变量和参数设置 6.缓存利用与清理 一.Do…

目录

一.Docker镜像管理

  1.Docker镜像结构

  2.Dockerfile介绍

二.Dockerfile实施

  1.构建nginx容器

  2.构建Tomcat容器

  3.构建mysql容器

三.Dockerfile语法注意事项

  1.指令书写范围

  2.基础镜像选择

  3.文件操作注意

  4.执行命令要点

  5.环境变量和参数设置

  6.缓存利用与清理


一.Docker镜像管理

      Docker 镜像除了是 Docker 的核心技术之外,也是应用发布的标准格式。一个完整的 Docker 镜像可以支撑一个 Docker 容器的运行,在 Docker 的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中进行操作,最常见的操作就是在容器中安装应用服务。 如果要把已经安装的服务进行迁移,就需要把环境以及搭建的服务生成新的镜像。本案例将介绍如何创建 Docker 镜像。

1.Docker镜像结构

   镜像不是一个单一的文件,而是有多层构成。可以通过 docker history 命令查看镜像中各层内容及大小,每层对应着 Dockerfile 中的一条指令 。Docker 镜像默认存储在 /var/lib/docker/<storage-driver> 目录中。容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。如果删除了容器,也就删除了其最上面的读写层,文件改动也就丢失了。Docker 使用存储驱动管理镜像每层内容及可读写层的容器层。Docker 镜像是分层的,下面这些知识点非常重要。

  • Dockerfile 中的每个指令都会创建一个新的镜像层;

  • 镜像层将被缓存和复用;

  • 当 Dockerfile 的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效;

  • 某一层的镜像缓存失效,它之后的镜像层缓存都会失效;

  • 镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件,只是这个文件在 Docker 容器中不可见了。

2.Dockerfile介绍

   Dockerfile 是一个用于构建 Docker 镜像的文本文件,它由一系列指令和参数组成。通过 Dockerfile,可以自动化地创建自定义镜像,无需手动干预每个步骤。

二.Dockerfile实施

1.构建nginx容器

(1)拉取centos镜像

[root@localhost ~ ]# docker pull centos:7

(2)创建dockerfile工作目录

[root@localhost ~ ]# mkdir /opt/nginx

 [root@localhost ~ ]# cd /opt/nginx

(3)创建dockerfile

 [root@localhost  nginx]# vim dockerfile

FROM centos:7

RUN rm -rf /etc/yum.repos.d/*

RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

RUN yum clean all

#RUN yum makecache

RUN yum -y install net-tools pcre-devel zlib-devel zlib gcc* make

ADD nginx-1.19.5.tar.gz /root

WORKDIR /root/nginx-1.19.5

RUN ./configure --prefix=/usr/local/nginx && make && make install

ADD nginx.conf /usr/local/nginx/conf/nginx.conf

EXPOSE 80

EXPOSE 443

#RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf

WORKDIR /root/nginx

ADD run.sh /run.sh

RUN chmod 775 /run.sh

CMD ["/run.sh"]

(4)编写nginx启动脚本

 [root@localhost  nginx]# vim run.sh

#!/bin/bash

/usr/local/nginx/sbin/nginx

(5)用dockerfile创建镜像

  [root@localhost  nginx]# docker build -t mynginx .

(6)启动容器

[root@localhost ~]# mkdir /nginx

[root@localhost~]# cp /opt/nginx/nginx.conf /nginx

[root@localhost nginx]# docker run -dit
-p 8083:80
-v /www/html:/web
-v /nginx/nginx.conf:/usr/local/nginx/conf/nginx.conf
--name nginx04
mynginx
/bin/bash -c /run.sh

[root@localhost nginx]# echo "web test">/www/html/index.html

(7)访问nginx网站

 http://192.168.10.101:8003

2.构建Tomcat容器

 (1)创建工作目录

[root@localhost ~ ]# mkdir /opt/tomcat/

[root@localhost ~ ]# cd /opt/tomcat

(2)创建dockerfile文件

 [root@localhost tomcat ]# vim dockerfile

FROM centos:7
ADD jdk-8u91-linux-x64.tar.gz /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_91
ENV JAVA_BIN /usr/local/jdk1.8.0_91
ENV JRE_HOME /usr/local/jdk1.8.0_91ENV PATH $PATH:/usr/local/jdk1.8.0_91/bin:/usr/local/jdk1.8.0_91/jre/bin
ENV CLASSPATH /usr/local/jdk1.8.0_91/jre/bin:/usr/local/jdk1.8.0_91/lib:/usr/local/jdk1.8.0_91/jre/lib/charsets.jar
ADD apache-tomcat-8.5.16.tar.gz /
RUN mv /apache-tomcat-8.5.16 /usr/local/tomcat
EXPOSE 8080
ADD run.sh /run.sh
RUN chmod 775 /run.sh
CMD ["/run.sh"]

 (3)创建启动脚本

[root@localhost tomcat ]# vim run.sh

#!/bin/bash

export JAVA-OPTS ="-Xms2048m -Xmx4096m"

ulimit -n 65536

/usr/local/tomcat/bin/startup.sh

tailf /usr/local/tomcat/logs/catalina.out

(4)用dockerfile生成镜像

 [root@localhost tomcat ]# docker build -t mytomcat .

(5)运行容器

  [root@localhost tomcat ]# docker run -d -i -p 8080:8080 --name tomcat01 mytomcat

(6)访问tomcat网站

httpd://192.168.10.101:8080 

3. 构建mysql容器

(1)创建工作目录

[root@localhost ~ ]# mkdir /opt/mysql

(2)创建dockerfile文件

 [root@localhost ~ ]# cd /opt/mysql

[root@localhost mysql ]# vim dockerfile

FROM centos:7

RUN rm -rf /etc/yum.repos.d/*

RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

RUN yum clean all

RUN yum -y install mariadb mariadb-server

RUN chown -R mysql:mysql /var/lib/mysql

ADD init.sh /init.sh

RUN chmod 775 /init.sh

RUN /init.sh

EXPOSE 3306

CMD ["mysqld_safe"]

(3)编写mysql初始化脚本 

[root@localhost mysql ]# vim init.sh

#!/bin/bash

mysql_install_db --user=mysql

sleep 3

mysqld_safe &

sleep 3

mysqladmin -u "root" password "123456"

mysql -uroot -p123456 -e "grant all privileges on *.* to 'root'@'%' identified by '123456';"

mysql -uroot -p123456 -e "grant all privileges on *.* to 'root'@'localhost' identified by '123456';"

mysql -uroot -p123456 -e "flush privileges;"

(4)生成镜像

 [root@localhost mysql ]# docker build -t mysql .

(5)创建容器

 [root@localhost mysql ]# docker run -tid -p 3306:3306 mysql

 [root@localhost mysql ]# dnf -y install mysql

  [root@localhost mysql ]# mysql -uroot -p123456 -h 192.168.10.101 -P 3306

 三.Dockerfile语法注意事项

1.指令书写规范

(1)大小写

    Dockerfile中的指令不区分大小写,但建议使用大写,以增强可读性。

(2)顺序

   指令的顺序非常重要,因为Docker会换顺序依次执行这些指令。合理安排指令顺序有助于提高构建效率和镜像的可维护性。

(3)注释

  可以使用#来添加注释,这有助于解释Dockerfile中各部分的作用,提高代码的可读性。

2.基础镜像选择
(1) 稳定性与安全性
  选择稳定、官方且维护良好的基础镜像,这样能保证镜像的安全性和可靠性。例如,官方的 ubuntu、alpine 等镜像都有较好的维护和更新机制。
(2) 镜像大小
  如果对镜像大小有严格要求,可选择轻量级的基础镜像,如 alpine 镜像,它体积小巧,适合构建资源占用少的容器。
3.文件操作注意
(1) COPY 与 ADD 的区别
  COPY 仅用于简单的文件和目录复制,语法清晰,性能较好,推荐优先使用。
  ADD 除复制功能外,还支持从 URL 下载文件和自动解压缩文件,但功能复杂可能带来安全风险和不可预测性,所以仅在确实需要这些额外功能时使用。
(3) 文件路径
  使用相对路径时要确保路径在构建上下文中是正确的。构建上下文是指执行 docker build 命令时指定的目录,只有该目录下的文件和子目录才能被复制到镜像中。
4.执行命令要点
(1) RUN 命令优化
  尽量将多个相关的命令合并成一个 RUN 指令,减少镜像的层数,从而减小镜像体积。例如,使用 && 连接多个命令。
(2) 清理临时文件和缓存
  要及时清理临时文件和缓存,避免将不必要的文件包含在镜像中。如上述示例中使用 rm -rf /var/lib/apt/lists/* 清理 APT 缓存。
(3) CMD 与 ENTRYPOINT 指令
  CMD 为容器提供默认执行命令,ENTRYPOINT 配置容器启动时执行的命令。当容器能被使用时,CMD 指令作为 ENTRYPOINT 的默认参数。
5.环境变量和参数设置
(1) ENV 与 ARG 的区别:
   ENV 设置的环境变量在容器运行时持续存在,可被容器内的应用程序使用,定义的参数还能在镜像构建过程有效,用于构建时的参数。
(4) 安全性
  避免在 ENV 或 ARG 中设置敏感信息(如密码、密钥等),若确实需要,可以在运行容器时通过环境变量传递。
(5) 网络和端口声明
  使用 EXPOSE 指令 - 只声明容器暴露的端口,不会进行实际的端口映射。在使用 docker run -p 选项时,会把容器中 EXPOSE 声明进行端口映射。
6.缓存利用与清理
(1) 缓存机制
  Docker 构建镜像时会利用缓存,若某条指令的内容未发生变化,会直接使用之前缓存的结果,加快构建速度;因此,将不常变动的指令放前面,可充分利用缓存。
(2) 缓存清理
   当需要强制重新构建镜像、不使用缓存时,可使用 docker build --no-cache 命令。

http://www.dtcms.com/wzjs/296628.html

相关文章:

  • 珠海编程培训机构重庆做网络优化公司电话
  • 服务周到的做网站seo排名优化的网站
  • 中国哪家网站做仿古做的好b站推广软件
  • 网站建设办什么手续中囯联通腾迅
  • wordpress页面找不到该网页搜索引擎优化seo优惠
  • 怎样做幼儿园网站网络推广靠谱吗
  • 做网站公司上班违法吗微信视频号可以推广吗
  • 网站维护的工作内容推广产品的方式有哪些
  • 山东政府网站建设北京互联网公司排名
  • wordpress 筛选插件seo学习
  • 网站建设的目的定位盈利模式和功能百度收录在线提交
  • 佛山制作网站设计报价网页百度
  • 自己怎么做短视频网站日本shopify独立站
  • 美食网站策划书范文美国搜索引擎浏览器
  • 湖北外贸网站建设多少钱seo人才
  • 乐清市网站建设设计百度公司电话
  • 龙岩做网站公司百度开户推广
  • 邯郸做移动网站价格表网站的优化公司
  • 成都十大营销策划公司新媒体seo培训
  • 疫情太原最新消息辽宁好的百度seo公司
  • 政府网站架构工具好用搜索引擎排名
  • 小公司网站建设怎样做网络推广
  • 织梦做单页面网站网站推广的工作内容
  • 阿里云 做购物网站网站免费外链网站seo发布
  • 榆林建设局网站友链交换
  • word怎么做网页丹东网站seo
  • 仿苹果手机 网站源码西安搜索引擎优化
  • 福州营销网站建设模板网店网络推广方案
  • 政务信息网站建设制度seo挂机赚钱
  • 常熟做公司网站超级seo工具