7月12日问答

问题一:发布环节,你的应⽤是怎样发布在服务器上的

  1. 选择合适的服务器:评估所需的服务器资源,包括CPU、内存、存储和带宽等。
  2. 准备服务器环境:安装操作系统,配置网络,安装必要的软件和库
  3. 上传应用文件:文件传输协议(如FTP、SCP),将开发好的应用文件上传到服务器上。
  4. 配置应用环境:安装和配置数据库、Web服务器、缓存服务器。配置应用的配置文件,如数据库连接信息、服务器地址、端口号等。
  5. 部署应用:在Web服务器上配置虚拟主机或站点,将应用的目录指向服务器上的相应位置。
  6. 测试应用:用浏览器或其他工具访问应用的URL,检查应用的各个功能模块是否正常工作并进行功能测试、性能测试、安全测试
  7. 监控和优化:设置监控系统来收集应用的运行数据,如访问量、响应时间、错误日志等

问题二:HTTP请求的协议栈过程,结合OSI七层⽹络模型,使⽤到了操作系统的哪些部分,⽹卡?浏览器?驱动程序?

2.6.1 OSI七层⽹络模型:
应用层(HTTP) 构建HTTP请求报文。请求报文包括请求行、请求头和请求体
传输层(TCP)请求报文被封装成TCP报文段,并添加TCP头部信息,如源端口号、目的端口号
网络层(IP)将TCP报文段封装成IP数据包,并添加IP头部信息,如源IP地址、目的IP地址
数据链路层 被封装成数据帧,并添加帧头部信息,通过物理链路(如以太网)传输到下一个节点
物理层 将数据帧中的比特流通过物理介质(如双绞线、光纤等)传输到目的端
2.6.2 操作系统
浏览器 HTTP请求的发起者,它负责构建HTTP请求报文,并通过操作系统的网络协议栈发送请求
操作系统内核 内核中网络协议栈负责处理网络数据包的接收、发送和转发。 它包括TCP/IP协议栈的实现,以及与其他网络协议的交互。
驱动程序 操作系统与网络硬件之间的接口 将网络数据包从操作系统的网络协议栈传输到网络接口卡 (或反向转换)
网卡(网络接口卡) 计算机与网络之间的物理连接设备。将数字信号转换为模拟信号(或反向转换),并通过物理介质传输数据

问题三:dockerfile怎样部署⼀个项⽬

1.编写Dockerfile

[root@docker-server nginx]# vim Dockerfile 

FROM centos:7

MAINTAINER hugo 2763743788@qq.com

RUN yum install -y vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop

ADD nginx-1.20.1.tar.gz /usr/local/src/

RUN cd /usr/local/src/nginx-1.20.1 \
&& ./configure --prefix=/usr/local/nginx --with-http_sub_module \
&& make \
&& make install \
&& cd /usr/local/nginx 
&& rm -rf /usr/local/src/nginx-1.20.1* # 清理源代码和压缩包以节省空间  

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

RUN useradd -s /sbin/nologin nginx \
&& ln -sv /usr/local/nginx/sbin/nginx /usr/sbin/nginx \
&& echo 'test nginx !' > /usr/local/nginx/html/index.html

EXPOSE 80 443

CMD ["nginx", "-g", "daemon off;"]

注意:ADD特性:自动解压tar文件支持从URL下载文件

2.构建Docker镜像

[root@docker-server nginx]# docker build -t nginx:v1 .
[root@docker-server nginx]# docker images | grep v1
nginx          v1        fbd06c1753c0   8 seconds ago   581MB

3.运行Docker容器

[root@docker-server nginx]# docker run -d -it -p 80:80 nginx:v1

4.(可选)使用Docker Compose

问题四: dockerfiledocker-compose区别

  • Dockerfile:主要用于定义单个容器镜像的创建过程,确保镜像的一致性和可重复性。
  • Docker-Compose:主要用于定义和协调多个容器服务的部署和服务之间的依赖,简化多容器应用的管理和部署流程。

两者结合使用,可以实现从单个服务的构建到整个多服务应用部署的全链条自动化,是现代容器化应用开发和部署中不可或缺的工具。

问题五:Dockerfile中的cmd和run的区别

RUN指令在构建镜像的过程中执行。每当Dockerfile被用来构建镜像时,RUN指令指定的命令都会在构建环境中执行,主要用于安装软件包、下载文件、编译应用等,以便为镜像创建所需的文件系统更改。每次RUN执行后,都会创建一个新的镜像层。因此,如果可能的话,最好将多个命令合并为一个RUN指令,以减少镜像的层数和大小。

CMD指令在容器启动时执行。当使用docker run命令运行一个容器时,如果docker run后面没有跟任何额外的命令,那么CMD中指定的命令就会在容器的主进程中执行,主要目的是为容器提供默认的执行命令。它告诉容器在启动时应该运行什么程序。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇