Docker学习之搭建JavaWeb环境进阶篇

简介: 上一篇文章中,简单了学习了一下在Docker环境中搭建JavaWeb环境,其实这时候已经是一个全新的镜像了,就是我们的Ghost系统一样,装配了各式各样的软件一样,以后使用的时候直接安装镜像即可。这时候我们需要做的就是把配置完成JavaWeb环境Docker打包一下,封装成一个更新的镜像环境。

上一篇文章中,简单了学习了一下在Docker环境中搭建JavaWeb环境,其实这时候已经是一个全新的镜像了,就是我们的Ghost系统一样,装配了各式各样的软件一样,以后使用的时候直接安装镜像即可。这时候我们需要做的就是把配置完成JavaWeb环境Docker打包一下,封装成一个更新的镜像环境。

打包镜像

首先我们进入之前启动的容器:

[root@iZ2ze74fkxrls31tr2ia2fZ ~]# docker attach centos
[root@b5a21b26c111 ROOT]

b5a21b26c111是产生的容器ID,然后我们执行以下命令:

docker commit  b5a21b26c111  centos-java

配置完成以后执行命令docker images,就可以看到REPOSITORY名为centos-java的镜像了。

上传镜像

阿里云官方网站链接(进入后自行创建用户):https://dev.aliyun.com/search.html

然后依次创建命名空间-镜像仓库。

登录阿里云docker registry:

docker login --username=admin@52itstyle.com registry.cn-hangzhou.aliyuncs.com

将镜像推送到registry:

docker tag <IMAGE ID> registry.cn-hangzhou.aliyuncs.com/itstyle/images:centos-java

docker push   registry.cn-hangzhou.aliyuncs.com/itstyle/images:centos-java

Push成功以后如下显示:
001

运行容器

查看镜像:

docker images

创建并启动容器:

docker run -i -t -v /root/software/:/mnt/software/ <IMAGE ID> /bin/bash

如果想启动的时候设置内存:

docker run -i -t -m 100m --memory-swap=100m  -v /root/software/:/mnt/software/ <IMAGE ID> /bin/bash

创建时指定容器名字:

docker run -i -t --name test -m 100m --memory-swap=100m  -v /root/software/:/mnt/software/ <IMAGE ID> /bin/bash

Docker 1.10提供了对容器资源限制的动态修改能力。例如,我们可以通过下面命令把容器内存限制调整到1GB

docker update -m 1024m test
docker restart test

查看运行容器:

docker ps

重命名容器:

docker rename <原容器NAMES> <新容器NAMES>

配置完成以后,我们启动容器中的Tomcat。

负载均衡

openresty配置:

server {
        listen       80;
        server_name  docker.52itstyle.com;

        charset utf-8;

        location / {
            default_type text/html;
            proxy_pass http://docker;
        }

    }
    upstream docker {
        server  172.18.0.2:8080  weight=1  max_fails=2 fail_timeout=30s;
        server  172.18.0.3:8080  weight=1  max_fails=2 fail_timeout=30s;
    }

最终访问地址(见标题变化):http://docker.52itstyle.com/

资源配置小知识

内存限制

Docker 提供的内存限制功能有以下几点:

  • 容器能使用的内存和交换分区大小。
  • 容器的核心内存大小。
  • 容器虚拟内存的交换行为。
  • 容器内存的软性限制。
  • 是否杀死占用过多内存的容器。
  • 容器被杀死的优先级

内存限制相关的参数:
执行docker run命令时能使用的和内存限制相关的所有选项如下。

  • -m,--memory 内存限制,格式是数字加单位,单位可以为 b,k,m,g。最小为 4M
  • --memory-swap 内存+交换分区大小总限制。格式同上。必须必-m设置的大
  • --memory-reservation 内存的软性限制。格式同上
  • --oom-kill-disable 是否阻止 OOM killer 杀死容器,默认没设置
  • --oom-score-adj 容器被 OOM killer 杀死的优先级,范围是[-1000, 1000],默认为 0
  • --memory-swappiness 用于设置容器的虚拟内存控制行为。值为 0~100 之间的整数
  • --kernel-memory 核心内存限制。格式同上,最小为 4M

作者: 小柒

出处: https://blog.52itstyle.com

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

目录
相关文章
|
9天前
|
Docker 容器
paddleocr 在docker环境下部署_docker部署paddleocr,90%的人看完都说好
paddleocr 在docker环境下部署_docker部署paddleocr,90%的人看完都说好
|
9天前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
24 1
|
7天前
|
JSON 测试技术 定位技术
【好用的个人工具】在Docker环境下部署Simple mind map思维导图工具
【5月更文挑战第16天】在Docker环境下部署Simple mind map思维导图工具
26 1
【好用的个人工具】在Docker环境下部署Simple mind map思维导图工具
|
9天前
|
运维 Linux Docker
ChatGLM3在Docker环境部署,Linux运维免打包多渠道统计如何实现
ChatGLM3在Docker环境部署,Linux运维免打包多渠道统计如何实现
|
9天前
|
运维 Linux Docker
ChatGLM3在Docker环境部署(1),Linux运维电话面试技巧
ChatGLM3在Docker环境部署(1),Linux运维电话面试技巧
|
9天前
|
Docker 容器
docker部署omni_usdt 0.8.0版本私有链集群环境
docker部署omni_usdt 0.8.0版本私有链集群环境
|
11天前
|
并行计算 Ubuntu Docker
Docker环境Ubuntu20.04安装Python3.10版本
Docker环境Ubuntu20.04安装Python3.10版本
75 0
|
11天前
|
分布式计算 Java Linux
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
Docker 是一套构建在 Linux 内核之上的高级工具,旨在帮助开发人员和运维人员更轻松地交付应用程序和依赖关系,实现跨系统和跨主机的部署。使用安全且轻量级的容器环境来实现这一目标。容器可以手动创建,也可以通过编写 Dockerfile 自动创建。开发人员和运维人员可以将应用程序及其依赖打包到容器中,实现应用程序的可移植性和环境一致性。
133 5
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
|
11天前
|
Cloud Native Shell Linux
云原生专题 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
云原生专题 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
25 0
|
11天前
|
Cloud Native Linux 虚拟化
云原生专题 |【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(底层实现系列)
云原生专题 |【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(底层实现系列)
61 0