• docker 部署springcloud项目【限制容器内存、CPU】


    一、首先从 docker.hub【地址:https://hub.docker.com】 中根据各自的需求 pull 对应的 openjdk镜像

    ######本次直接在修改后的docker镜像源中下载######
    docker pull adoptopenjdk/openjdk8

    二、编写Dockerfile

    FROM adoptopenjdk/openjdk8
    
    MAINTAINER gyh
    
    COPY meisooEureka_1.0.0.jar /home/meisapp/services/meisooEureka/1.0.0/meisooEureka_1.0.0.jar
    
    EXPOSE 8761
    
    WORKDIR /home/meisapp/services/meisooEureka/1.0.0
    
    RUN mkdir -p /home/meisapp/services/meisooEureka/1.0.0/logs && ln -s /dev/stdout /stdout.log
    
    ENTRYPOINT ["java","-jar","-Xms1024M","-Xmx1024M","/home/meisapp/services/meisooEureka/1.0.0/meisooEureka_1.0.0.jar","--spring.profiles.active=devTest"]

    三、构建镜像

    docker build -t gyh/openjdk8:v1.0 .
    
    参数:
    注意最后有个点,代表使用当前路径的 Dockerfile 进行构建 
    -t  gyh/openjdk8:v1.0  给新构建的镜像取名为gyh/openjdk8:v1.0

    四、由于日志数据无论什么情况都不能丢失,所以数据存在容器外部,通过映射操作,映射到容器内部,参数如下

    -v hostPath:containerPath【将宿主机的路径,映射到容器内部。这个路径既可以是文件夹,也可以是文件】

    五、启动容器,假设在宿主机中数据存放路径为/home/meisapp/services/meisooEureka/1.0.0/logs

    docker run -d 
         --name meisooEureka_1.0.0_20191211  
         -p 8761:8761 
         -p 2222:22 
         -m 1050M --memory-swap 1050M -c 512  
         -v /etc/localtime:/etc/localtime  
         -v /etc/timezone:/etc/timezone  
         -v /home/meisapp/services/meisooEureka/1.0.0/logs:/home/meisapp/services/meisooEureka/1.0.0/logs  
         gyh/openjdk8:v1.0
    
    
    docker ps 
    CONTAINER ID   IMAGE              COMMAND                                                                                                                           CREATED         STATUS        PORTS                                           NAMES
    29f71e153a73   gyh/openjdk8:v1.0  "java -jar -Xms1024M Xmx1024M /home/meisapp/services/meisooEureka/1.0.0/meisooEureka_1.0.0.jar --spring.profiles.active=devTest"  8 hours ago     Up 8 hours    0.0.0.0:8761->8761/tcp, 0.0.0.0:2222->22/tcp    meisooEureka_1.0.0_20191211

    六、具体参数含义

    -p 外部端口:容器内部端口
    -m 容器内存限制,格式是数字加单位,单位可以为 b,k,m,g。最小为 4M 
    --memory-swap 内存+交换分区大小总限制。格式同上。必须大于等于-m设置的数字
    -c 设置容器CPU权重,在CPU共享场景使用
    -it 标准输入输出有关
    -d 后台启动
    -v 文件映射[宿主机目录:容器目录]
    -e 设置环境变量到容器中
    --name  指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
    /etc/timezone和/etc/localtime,这是为了让容器的时间和时区与宿主机保持一致。默认情况下容器为 UTC 标准时间。/etc/timezone让容器时间,时区和宿主机一致。但是如果不映射/etc/localtime应用中的时区还是错的,虽然使用date -R命令查看时间和时区都正常
  • 相关阅读:
    编写简单的c运行库(一)
    c中函数参数传递
    MSVC命令行参数
    在C#中对List<>进行排序
    向DataTable中添加一行数据的做法
    获取本机IP(考虑多块网卡、虚拟机等复杂情况)
    [转]在C#中判断一个文本文件的编码方式
    关于C#使用XML序列化的一些注意事项
    C#中的类型和SQL Server中的类型对应关系
    关于DLL文件和EXE文件不在同一目录下的设置
  • 原文地址:https://www.cnblogs.com/faithH/p/11981227.html
Copyright © 2020-2023  润新知