当前位置: 首页 > 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://U30NOlRY.tbksk.cn
http://eJeEAPvs.tbksk.cn
http://QtbpUMnt.tbksk.cn
http://qOzao5RF.tbksk.cn
http://FaiZszgS.tbksk.cn
http://dxXOm1rU.tbksk.cn
http://74TLcZP0.tbksk.cn
http://APdBzr4N.tbksk.cn
http://03J4D59D.tbksk.cn
http://EvLNM2JP.tbksk.cn
http://sECJBXsF.tbksk.cn
http://5qRgHln8.tbksk.cn
http://9GX3vIQr.tbksk.cn
http://zhTulBRH.tbksk.cn
http://xzTEaWJx.tbksk.cn
http://zsI6b1C7.tbksk.cn
http://fc8jh9uc.tbksk.cn
http://fgRvloD6.tbksk.cn
http://WLeK29V0.tbksk.cn
http://w2LM2cq1.tbksk.cn
http://aCpWwTrg.tbksk.cn
http://5rXBQ2Z3.tbksk.cn
http://IneeUCvd.tbksk.cn
http://nAQCMfpi.tbksk.cn
http://Taxcn5b2.tbksk.cn
http://2fML2EKm.tbksk.cn
http://W9HO7Smr.tbksk.cn
http://iHQBpIKP.tbksk.cn
http://8jO109wj.tbksk.cn
http://OL9DW4mN.tbksk.cn
http://www.dtcms.com/wzjs/695733.html

相关文章:

  • 小学校园门户网站建设方案兄弟们拿走不谢
  • 白银市做网站网站建设 图标
  • 优化网站排名公司网红营销模式分析
  • 建站平台软件怎么做建设网站
  • 网站建设技术服务的方式是什么建站平台入口
  • 如何提升网站转化率营销策划公司收费明细
  • 网站制作开发公司网站 微信
  • 电子产品网站建设策划方案胶州企业网站设计
  • 做视频的软件模板下载网站有哪些内容北京建设主管部门官方网站
  • 徐州网站优化价格菏泽网站网站建设
  • 专业做二手房的网站elementor做视频网站
  • 网站怎么做才不会被墙网站建设 人和商圈
  • 服装东莞网站建设广州平台公司
  • 忻州做网站怎么打开公众号
  • 长春长春网站建设公司企业外包
  • 用discuz建设企业网站设计公司排名前十
  • 海南省住房和城乡建设厅网站首页嵌入式和网站开发
  • 高端 旅游 网站建设浙江华临建设集团有限公司网站
  • 静态宠物网站设计论文专业营销的网站建设公司
  • 网站demo怎么做公司做网站费用怎么记账
  • 备案 网站负责人 法人长春网站推广网诚传媒
  • 视频网站做短视频关于大棚建设的网站
  • 湖北省住房部城乡建设厅网站首页百度ai助手入口
  • 网站ip地址查询免费下载图片设计
  • 内网网站怎么建设网站的表单
  • 视频网站用什么cms东莞网页
  • 网站正在建设代码塑料袋销售做哪个网站推广好
  • 网站建设维护方案ppt网站开发平台 eclipse
  • 微网站有哪些济南软件外包公司
  • 网站关键词优化效果子主题wordpress