zoukankan      html  css  js  c++  java
  • Docker简介

    一、什么是Docker

    docker是一个能够把开发的应用程序自动部署到容器得开源引擎。

    二、为什么要使用Docker

    • 启动速度快(大多数docker容器只需不到1秒的时间即可启动.)
    • 资源利用率高(一台普通 PC 可以跑上千个容器,跑上千个 VM 试试.)
    • 隔离性(docker相当于一个单独的运行环境,和宿主机之间个隔离更加彻底,也避免了宿主机的环境污染.)
    • 快速、高效得开发生命周期(缩短开发、测试到部署、上线运行的周期,让你的应用具备可移植性,易于构建.)
    • 鼓励面向服务的架构和微服务架构(docker推荐一个容器之运行一个应用程序,这样就形成了一个分布式的应用程序模型.)

    三、怎么使用Docker

    #查看所有镜像
    docker images
    #查看所有正在运行的容器
    docker ps
    #运行一个容器
    docker run -d --restart=always  -p 8021:80 --name supback supback
    #停止容器
    docker stop supback
    #启动一个停止的容器
    docker start supback
    #删除容器
    docker rm supback
    #删除镜像
    docker rmi supback
    

    四、通过Dockerfile构建镜像

    # 基于dotnet基础环境构建镜像
    #FROM必须是Dockerfile中的第一个非注释指令。
    FROM docker.io/microsoft/dotnet
    #维护者信息
    MAINTAINER Dirk.Wang  510423039@qq.com
    #镜像的相关信息
    LABEL Discription="这是基于dotnetcore的泛优镜像"
    LABEL version="1.0"
    # 通过RUN指令可以运行shell脚本 创建Supback目录 
    RUN mkdir /Supback
    #定义参数 通过ARG 可以在构建镜像的时候定义参数
    ARG env
    # 把发布的内容拷贝到docker容器的supback目录下
    COPY /publish /Supback
    # 设置工作目录(相当于cd 到需要执行命令的目录下)
    WORKDIR /Supback
    # 暴露80端口
    EXPOSE 80
    # 设置环境变量
    ENV ASPNETCORE_ENVIRONMENT=$env
    # 启动web
    RUN echo "执行环境: $env"
    #容器启动时进行调用
    CMD ["dotnet","SupBack.dll"]
    

    五、通过Jenkins实现自动编译发布应用程序到Docker

    • 在使用Jenkins之前,先写好我们需要在Jenkins上执行的命令
    • 新建一个shell脚本:publish.development.sh
    #!/bin/sh
    #查询所有叫做supback的容器
    docker container ls -a | grep "supback" 
    if [ $? -eq 0 ];then
    #如果查询到存在该容器,则停止容器,在删除改镜像
        docker container stop supback
        docker container rm supback
        docker rmi  supback
    #查询supback容器之前占用的端口
    	docker network ls |grep supback
    #之前由于会有端口释放不了这里手动释放端口
    	docker network rm supback
    fi
    #基于之前的Dockerfile构建泛优的系统镜像
    docker build -t supback --build-arg env="Development" .
    #基于我们构建的镜像运行一个容器
    docker run -d --restart=always  -p 8021:80 --name supback supback
    #设置docker容器的时间和宿主机的时间保持一致
    docker cp /etc/localtime supback:/etc/
    
    • 安装配置Jenkins
    # 进入到Supback文件夹
    cd SupBack
    #如果publish文件夹存在,则删除
    if [ -d "publish" ]; then
     rm -rf publish
    fi
    #发布dotnetcore 系统到指定目录下
    dotnet publish -o /var/lib/jenkins/workspace/SupBack/SupBack/publish
    # 给shell脚本授予可执行的权限
    chmod 777 publish.development.sh
    #执行脚本
    ./publish.development.sh
    

    DotNetCore自动化部署.docx

  • 相关阅读:
    个人作业——顶会热词进程1.3
    个人作业——顶会热词进程1.2
    每周总结(5.9)
    个人作业2——顶会热词进程1.1
    团队项目冲刺第10天
    CodeForces-1178F1 Short Colorful Strip 区间DP
    LOJ-2362 蚯蚓 队列优化
    Educational Codeforces Round 107 (Rated for Div. 2) G.Chips on a Board 倍增优化DP
    LOJ-2123 最短不公共子串 后缀自动机,子序列自动机
    LGR-084 C Reboot from Blue 贪心 DAG上DP最短路
  • 原文地址:https://www.cnblogs.com/yxcn/p/10021424.html
Copyright © 2011-2022 走看看