创建dockerfile(Dockerfile-web),通过dockerfile构建nginx镜像

FROM nginx:stable-alpine
COPY nginx.conf /etc/nginx/nginx.conf
ADD dist.tar.gz /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

dockerfile是一个描述如何构造和启动镜像的文件,像上面这个

1.我们从 nginx:stable-alpine 拉取镜像作为基座,nginx版本是,1.22.1;

2.拷贝当前目录下的nginx.conf 到 镜像里面的/etc/nginx/nginx.conf,其实就是替换,nginx的配置

3.把当前目录下的dist.tar.gz的压缩文件,解压到镜像的/usr/share/nginx/html/

ps: 压缩命令:cd 到dist目录执行 tar -zcvf dist.tar.gz ./

4.声明该镜像服务跟外界通讯的端口是80

5.启动程序在后台执行

下面的操作都是在安装有docker的服务器运行

执行命令构建镜像

docker build -t myNginx:v1 . -f ./Dockerfile-web

查看镜像

docker images

使用镜像myNginx:v1创建容器myNginxV1实例,并映射宿主85端口到容器的80端口

docker run -d -p 85:80 --name myNginxV1 myNginx:v1               ## 使用新镜像创建容器

启动容器

docker start myNginxV1

查看容器状态
docker ps

停止容器

docker stop myNginxV1

删除容器

docker rm myNginxV1

进入容器

docker exec -it myNginxV1  /bin/sh

ps:进入容器要看容器的基座是基于什么方式进行交互,有的是/bin/bash有的是/bin/sh

退出容器

请按Ctrl+P+Q进行退出容器

部署到k8s

1.如果有部署自己公共的镜像服务器管理平台,如Harbor,则将上述创建好的镜像文件push到管理平台,执行

docker tag myNginx:v1 xxx.xxx.xxx.xxx/myNginx:v1
docker push xxx.xxx.xxx.xxx/myNginx:v1

2.编写yaml文件(myNginx.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:name: myNginxlabels:name: myNginx
spec:replicas: 3 # 启动3个容器实例selector:matchLabels:app: myNginxtemplate:metadata:labels:app: myNginxspec:containers:- name: moanginximage: xxx.xxx.xxx.xxx/myNginx:v1imagePullPolicy: Always # 始终拉取ports:- containerPort: 80 # 容器对外端口---apiVersion: v1
kind: Service
metadata:name: myNginxlabels:app: myNginx
spec:type: NodePortports:- port: 80 # 容器端口targetPort: 80 # 容器端口nodePort: 30005 # 对外服务端口selector:app: myNginx

这个yaml文件是告诉k8s如何部署镜像,服务。

ps:yaml的语法,跟json差不多,少了{},层级靠空格区分(空格个数不限制,相同空格数的在同一级),“-”表示父元素是个数组,这是一个数组项;“---”表示另外要一个yaml文件,不想分多个文件想在一个文件里面描述的就使用---隔开

上面yaml定义2个类型的Deployment,Service的对象,Deployment简单理解管理容器的一套程序,配置这个类型,告诉k8s,容器从哪里拉镜像,启动多少容器实例等等;Service简单理解容器运行后从集群角度对外怎样提供服务,通过配置对外服务是30005端口,外部的程序就可以通过30005端口进入集群访问容器提供的服务,负载均衡啥的应该就都是Service内部自己调度

下面的命令需要在部署了k8s的服务器上运行

执行部署命令

kubectl apply -f myNginx.yaml

执行后,如果没有什么问题,通过 kubectl get pods 可以看到3个myNginx的实例在运行,再通过http://xxx.xxx.xxx.xxx:30005,在浏览器就可以访问容器内nginx提供的web内容

停掉这个部署可以使用下面命令

kubectl delete -f myNginx.yaml

执行后,再用kubectl get pods,可以看到myNginx会逐步停掉至消失

构建nginx镜像,部署到k8s相关推荐

  1. dockerfile以alpine为基础镜像构建nginx镜像

    dockerfile以alpine为基础镜像构建nginx镜像 文章目录 dockerfile以alpine为基础镜像构建nginx镜像 1:alpine 2:alpine软件包管理命令 apk ad ...

  2. Dockerfile构建nginx镜像

    Dockerfile构建nginx镜像[root@bogon ~]# mkdir /opt/docker-file [root@bogon ~]# cd /opt/docker-file/ [root ...

  3. Dockerfile构建Nginx镜像、镜像优化(多阶段构建,最小化镜像构建)

    Dockerfile创建镜像 Dockerfile 有以下指令选项: FROM MAINTAINER RUN CMD EXPOSE ENV ADD COPY ENTRYPOINT VOLUME USE ...

  4. 75-CentOS-Docker构建nginx镜像

    准备一台CentOS7-1908虚拟机虚拟机中没有docker下载源 [root@C7-Docker ~]# wget -O /etc/yum.repos.d/docker-ce.repo https ...

  5. docker 构建tomcat镜像部署war包

    docker 构建tomcat容器部署war包 拉取tomcat镜像 docker pull tomcat:8.5-alpine 查看镜像 docker images 构建并启动容器 docker r ...

  6. 利用docker中的nginx镜像部署angular项目

    1.进入angular项目下的src文件加下:在命令行中执行:ng build --prod --aot 2.将生成的dist文件,通过Xftp传到服务器中 3.修改权限 4.进入到dist文件夹下的 ...

  7. 使用Dockerfile构建Nginx,Tomcat,MySQL镜像

    实验环境说明 本机IP地址:192.168.10.157 构建mysql镜像时,验证的主机IP:192.168.10.149 构建Nginx镜像 1.下载基础镜像--centos镜像 docker p ...

  8. dockerfile构建nginx并结合php

    查看nginx和php的目录结构: [root@docker docker_demo]# tree nginx nginx ├── Dockerfile ├── fastcgi_params ├── ...

  9. 基于nerdctl + buildkitd构建容器镜像,运行tomcat后端服务和nginx前端服务

    目录 简介: 一.部署buildkitd 1.下载二进制包 2. 解压二进制包,并移到全局变量中 3.创建socket文件,service文件 4.启动服务 二.使用nerdctl命令测试镜像构建 1 ...

最新文章

  1. 宏基因组扩增子2分析流程:中文首发,史上最详系,零基础自学
  2. les物流执行系统_物流规划工作如何开展?
  3. vscode跳转到指定行快捷键
  4. GDCM:gdcm::Command的测试程序
  5. javascript 忍者秘籍读书笔记
  6. PMP之项目资源管理---激励理论
  7. 关于java中next,nextInt,nextLine的区别
  8. 小文件复制为什么那么慢_为什么最近手机网速那么慢?原因是……
  9. 深入理解typedef
  10. C++标准转换运算符:dynamic_cast
  11. 博弈论 斯坦福game theory stanford week 2.1_
  12. ad转3d视图快捷键_AD详细快捷键按键
  13. python中的常数e的实现
  14. 什么耳机对而伤害最小,传闻不伤耳的骨传导耳机是真的吗?
  15. 邮件营销群发6大技巧!怎么群发邮件效果好?
  16. 数据可视化神器,精彩的地图可视化展示
  17. 扫描器s-scan下载安装功能应用
  18. 北京做系统的公司有哪些服务器,北京服务器工控机排名
  19. 聚焦:中国八大城市娶老婆的成本
  20. CSS3 媒体查询(media)与 Viewport

热门文章

  1. HBuildx项目运行到小程序出现下面提示
  2. win10修复引导工具怎么用【系统天地】
  3. Flip Flop和DoOnce
  4. 基于视觉的车道线识别技术在智能车导航中的应用研究
  5. (转)《浪潮之巅》作者吴军前言:有幸见证历史(内有目录和作者简介)
  6. 生命中不仅仅只有代码
  7. 通过PHP实现PNG转JPG
  8. 2017.05.05FreeCodeCamp前端编程之Javascript实现laohuji
  9. DataFrame按照时间分组然后求平均
  10. Hillstone 基础上网配置