0
点赞
收藏
分享

微信扫一扫

2013年全国硕士研究生入学统一考试管理类专业学位联考英语(二)试题

ZGtheGreat 2023-06-19 阅读 28

目录

镜像到底是什么?

使用docker创建镜像

步骤:

1、编辑Dockerfile(Dockerfile是docker制作镜像的配方文件)

2、编辑requirements.txt文件

 3、编辑app.py文件,我们的程序文件

4、生成镜像文件

5、查看生成的镜像

6、下载启动redis镜像

7、使用生成的镜像生成容器 

8、​​​​查看实验成果 

docker 的CI与CD  

一、CI/CD的简介

1、CI(CI-Continuous integration,持续集成)

2、CD(CD-continuous deployment,持续部署)

3、持续交付(Continuous Delivery)

4、完整步骤图

5、jenkins


常见的一些docker文件和其起到的作用

创建两个nginx容器,并使用--link链接,目的是让claylpf-nginx-2 能 使用claylpf-nginx-1容器内的软件或者是程序

#创建claylpf-nginx-1容器
[root@mysql ~]# docker run -d -p 6606:80 --name claylpf-nginx-1 nginx
22e10551d3cd59391a1430e98b409e99c21c991dbfb406a010c8c97c352bf10d

#创建claylpf-nginx-2容器,并链接到claylpf-nginx-1上去
[root@mysql ~]# docker run -d -p 6607:80 --name claylpf-nginx-2  --link claylpf-nginx-1:claylpf nginx
bd698ed57cbb5df76e42ef6a9991ec491318b5f90b1129dd3d3c4dbd5237aa68
[root@mysql ~]# 

--link 容器名字:再claylpf-nginx-2容器里的/etc/hosts添加一条

镜像到底是什么?

使用docker创建镜像

步骤:

1、编辑Dockerfile(Dockerfile是docker制作镜像的配方文件)

[root@mysql /]# mkdir mydocker
[root@mysql /]# cd mydocker
[root@mysql mydocker]# ls
[root@mysql mydocker]# vim Dockerfile


[root@mysql mydocker]# cat Dockerfile 
FROM python:2.7-slim         #导入基础镜像,里面安装了python 2.7
WORKDIR /app                 #进入到容器后,会进入的文件夹
ADD . /app            #复制linux系统当前目录下的内容到容器的/app目录下 类似于执行docker cp
RUN pip install --trusted-host pypi.python.org -r requirements.txt    #再容器内部执行的命令
EXPOSE 80                   #容器暴露80端口,监听80端口
ENV NAME World              #定义了环境变量NAME的值为World
ENV AUTHOR clay             #定义了环境变量AUTHOR的值为World
CMD ["python","app.py"]     #容器启动的时候执行该命令 python app.py
[root@mysql mydocker]# 

2、编辑requirements.txt文件

[root@mysql mydocker]# vim requirements.txt
[root@mysql mydocker]# cat requirements.txt 
Flask
Redis
[root@mysql mydocker]# 

 3、编辑app.py文件,我们的程序文件

[root@mysql mydocker]# vim app.py
[root@mysql mydocker]# cat app.py
from flask import Flask
from redis import Redis, RedisError
import os
import socket

# Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)

app = Flask(__name__)

@app.route("/")
def hello():
    try:
        visits = redis.incr("counter")
    except RedisError:
        visits = "<i>cannot connect to Redis, counter disabled</i>"

    html = "<h3>Hello {name}!</h3>" \
           "<b>Hostname:</b> {hostname}<br/>" \
           "<b>Visits:</b> {visits}"
    return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)

[root@mysql mydocker]# 

4、生成镜像文件

[root@mysql mydocker]# docker build -t sc-hello_1 .

5、查看生成的镜像

docker images

6、下载启动redis镜像

[root@centos8-docker mydocker1]# docker pull redis

7、使用生成的镜像生成容器 

[root@centos8-docker mydocker1]# docker run -d -p 6677:80 --name sc_hello_2 sc_friendlyhello_2
[root@centos8-docker mydocker1]# docker ps
#查看正在运行的容器

8、​​​​查看实验成果 

因为redis容器没有启动,所以我们启动一个redis容器链接到现在的这个容器。

[root@centos8-docker mydocker1]# docker run -d -p 5644:6379 --name sc_redis_2 redis
#创建redis容器
[root@centos8-docker mydocker1]# [root@centos8-docker mydocker1]# docker run -d -p 5647:80 --name sc_hello_4 --link sc_redis_2:redis sc_friendlyhello_2

#创建一个容器链接到redis数据库容器

再用浏览器访问192.168.31.31:5647

docker 的CI与CD  

CI/CD  持续集成--》持续部署 --》持续交付        

一、CI/CD的简介


CI/CD是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。
CI/CD的核心概念是持续集成、持续交付和持续部署。

具体来说,CI/CD可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)这些关联的事务统称为“CI/CD管道”,由开发和运维团队协同支持。

互联网软件的开发和发布,目前已经形成了一套标准流程,一般可以分为以下几个阶段:
开发——构建——集成——测试——交付——部署

1、CI(CI-Continuous integration,持续集成)

持续集成是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起并切相互不影响工作。
持续集成的目的,是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
注:持续集成简单来说,就是频繁的将代码集成到主干。将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。

2、CD(CD-continuous deployment,持续部署)


是基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的产品,持续部署在某种程度上代表了一个开发团队的更新迭代速率。
持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。

注:持续部署的前提是能自动化完成测试、构建、部署等步骤。

3、持续交付(Continuous Delivery)


持续交付是在持续部署的基础之上,将产品交付到线上环境,因此持续交付是产品价值的一种交付,是产品价值的一种盈利的实现。
持续交付指的是频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。持续交付优先于整个产品生命周期的软件部署,建立在高水平自动化持续集成之上
注:持续交付可以看作持续集成的下一步

4、完整步骤图

5、jenkins

很多公司都会使用jenkins 而它是CI/CD 持续集成/持续交付的杰出的软件

官方网站:Jenkins

举报

相关推荐

0 条评论