k8s系列-kuboard创建工作负载 docker上传java微服务jar包到仓库的过程

本文主要是介绍k8s系列-kuboard创建工作负载 docker上传java微服务jar包到仓库的过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • docker环境准备
    • docker 镜像相关命令
    • docker 容器相关命令
    • 容器和主机之间信息传递
  • 内网中将jar包上传到docker仓库中

docker环境准备

1.查看环境中是否存在docker环境

docker version

2.不存在的话需要创建docker

镜像(image):
docker镜像就好比是一个目标,可以通过这个目标来创建容器服务,tomcat镜像>run>容器(提供服务
器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。容器(container):
Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的.
启动,停止,删除,基本命令
目前就可以把这个容器理解为就是一个简易的 Linux系统。仓库(repository):
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库。(很类似git)
Docker Hub是国外的。
阿里云…都有容器服务器 (配置镜像加速!)安装docker 
1.环境准备
linux要求内核3.0以上
centos7
2.环境查看
#系统内核要求3.0以上
[root@localhost ~]# uname -r
3.10.0-1062.el7.x86_64
#系统版本
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"2.安装
#1.卸载旧版本
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
#2.需要的安装包
yum install -y yum-utils
#3.设置镜像的仓库
#推荐使用国内的
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新软件包索引
yum makecache fast
#4.安装docker docker-ce 社区版 而ee是企业版
yum install docker-ce docker-ce-cli containerd.io # 这里我们使用社区版即可
#5.启动docker
systemctl start docker
#6.使用docker version 查看是否安装成功
docker version

docker 镜像相关命令

docker version # 显示docker的版本信息
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令# 镜像命令
docker images  查看镜像信息
REPOSITORY 镜像的仓库源
TAG 镜像标签
IMAGE ID 镜像id
CREATED 镜像的创建时间
SIZE 镜像的大小
#可选项
Options:
-a, --all # 列出所有镜像
-q, --quiet # 只显示镜像iddocker search 搜索镜像
eg:docker search mysql
docker pull 镜像名[:tag]
eg: docker pull mysql:5.7删除镜像
[root@localhost /]# docker rmi -f 镜像id #删除指定镜像
[root@localhost /]# docker rmi -f 镜像id 镜像id 镜像id #删除多个镜像
[root@localhost /]# docker rmi -f $(docker images -aq) #删除全部镜像将本目录下所有文件打包成镜像
docker build -t app-cli:1.1 .

docker 容器相关命令

# 有了镜像才可以创建容器
1.新建镜像并启动容器
docker run -d app-cli:1.1
# 参数说明
--name="Name" 容器名字 tomcat01 tomcat02 ,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:80
-p ip:主机(即宿主机)端口:容器端口
-p 主机端口:容器端口 #这种方式常用
-p 容器端口
容器端口P
-P 随机指定端口(大写P)列出所有容器
docker ps    列出正在运行的容器
docker ps -a 列出历史上所有容器
exit # 直接退出容器
Ctrl + p + q # 容器不停止退出
删除容器
docker rm 容器id # 删除指定容器,不能删除正在运行的容器,如果要强制删rm -f
docker rm -f $(docker ps -aq) # 删除所有容器
docker ps -a -q|xargs docker rm # 删除所有容器
启动和停止容器的操作
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker kill 容器id # 强制停止当前正在运行的容器
显示日志
docker logs -f -t --tail 数字 容器id
# 显示日志
-tf # 显示日志
--tail # 要显示的日志条数
[root@localhost /]# docker logs -tf --tail 10 ce989f90023d# 查看容器中进程的信息
# 命令 docker top 容器id
[root@localhost /]# docker top ce989f90023d进入当前正在运行的容器
# 方式一
docker exec -it 容器id bashShell
# 方式二
docker attach 容器id
# 测试
[root@localhost /]# docker attach ce989f90023d
# docker exec # 进入容器后开启一个新的终端,可以在里面操作(常用)
# docker attach # 进入容器正在执行的终端,不会启动新的进程

容器和主机之间信息传递

从容器内拷贝文件到主机上
docker cp 容器id:容器内目标文件路径 目的主机路径
# 查看当前主机目录
[root@localhost home]# ls
ztx
# 进入docker容器内部
[root@localhost home]# docker attach ce989f90023d
[root@ce989f90023d /]# cd /home/
[root@ce989f90023d home]# ls
# 在容器内新建一个文件
[root@ce989f90023d home]# touch test.java
[root@ce989f90023d home]# exit
exit
[root@localhost home]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
ce989f90023d centos "/bin/bash" 44 minutes ago Exited (0) 46 seconds
ago nifty_johnson
# 将docker内文件拷贝到主机上
[root@localhost home]# docker cp ce989f90023d:/home/test.java /home
[root@localhost home]# ls
test.java ztx
[root@localhost home]#
# 拷贝是一个手动过程,未来我们使用 -v 卷的技术,可以实现自动同步

内网中将jar包上传到docker仓库中

1.环境说明

1.开发人员将java微服务打包成在linux中可运行的jar包,将其传送给运维人员
2.外网和内网可以传送文件
3.内网需要有linux服务器,并且配置了docker环境和命名空间
这里过程是基于k8s的集群kuoard控制器,上传docker的过程,环境都是配置完毕的

2.创建dockerfile
先在命名空间中创建一个项目目录,用于接收项目的多个微服务
这里选择/app 命名空间

mkdir /app/B2C-cph

将指定部署包上传到指定目录下

mkdir /app/B2C-cph/app
mkdir /app/B2C-cph/nginx
mkdir /app/B2C-cph/mysql
mkdir /app/B2C-cph/redis

不同服务上传到不同的目录下

每个服务下编写不同的dockerfile
这里选择一个java微服务做个dockrfile

1.从仓库中拉取jdk1.8环境
from 仓库地址/项目名/镜像:latest
2.添加微服务jar包
ADD app.jar app.jar
3.环境设置
ENV LANG=en_US.utf8
4.启动命令
ENTRYPOINT ["java","-jar","app.jar"]

app目录下只有app.jar和dockerfile文件

1.将app目录打包成镜像
# docker build -t app-cli:1.0 . 
2.打标签
# docker tag app-cli:1.0 仓库地址/项目名/app-cli:1.0
3.上传到仓库
# docker push 仓库地址/项目名/app-cli:1.0

这里去内网docker仓库页面就可以可看到创建的镜像了
可以在k8s集群管理平台拉取镜像创建容器

这篇关于k8s系列-kuboard创建工作负载 docker上传java微服务jar包到仓库的过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/389654

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p