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集群管理平台拉取镜像创建容器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/139234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习模板代码(期末考试复习)自用存档

机器学习复习代码 利用sklearn实现knn import numpy as np import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCVdef model_selection(x_train, y_train):## 第一个是网格搜索## p是选择查找方式:1是欧…

CS224W5.3——信念传播

此文中,我们介绍信念传播,这是一种回答图中概率查询的动态规划方法。通过迭代传递消息给邻居节点,如果达成共识,则计算最终的信念值。然后,我们通过示例和泛化树结构展示消息传递。最后讨论了循环信念传播算法及其优缺…

ROS话题(Topic)通信:通信模型、Hello World与拓展

文章目录 一、话题通讯模型二、Topic Hello World2.1 创建并初始化功能包2.2 确定Topic名称及消息格式2.3 实现发布者与订阅者(C版)2.4 实现发布者与订阅者(Python版)2.5 关于Topic Hello World的注意 拓展1:devel下其…

记录一下在自己的项目中打开别人的外链的实现方式

openWin(url) { var name; //网页名称,可为空; var iWidth 500; //弹出窗口的宽度; var iHeight 570; //弹出窗口的高度; //window.screen.height获得屏幕的高,window.scre…

计算机网络——物理层-传输方式(串行传输、并行传输,同步传输、异步传输,单工、半双工和全双工通信)

目录 串行传输和并行传输 同步传输和异步传输 单工、半双工和全双工通信 串行传输和并行传输 串行传输是指数据是一个比特一个比特依次发送的。因此在发送端和接收端之间,只需要一条数据传输线路即可。 并行传输是指一次发送n个比特,而不是一个比特&…

超详细介绍如何使用 OpenCV 和 BGS 库进行背景扣除

深入研究这些 CV 系统背后的想法,我们可以观察到,在大多数情况下,初始步骤包含背景减除 (BS),这有助于获得视频流中对象的相对粗略和快速的识别,以便对其进行进一步的精细处理。在当前的文章中,我们将介绍几种在准确性和处理时间 BS 方法方面值得注意的算法:SuBSENSE和基…

【Docker】Web应用通过jar打包成WAR文件

把当前目录下的所有文件打包成game.war jar -cvfM0 game.war ./ -c 创建war包 -v 显示过程信息 -f -M -0 这个是阿拉伯数字,只打包不压缩的意思 解压game.war jar -xvf game.war 解压到当前目录 环境 RedHat Linux 9 VWWare 8.0 SSH 3.2.9 Putty 0.62 问题…

11.7加减计数器,可置位~,数字钟分秒,串转并,串累加转并,24位串并128,流水乘法器,一些乘法器

信号发生器 方波,就是一段时间内都输出相同的信号 锯齿波就是递增 三角波就是先增后减 加减计数器 当mode为1则加,Mode为0则减;只要为0就输出zero 这样会出问题,因为要求是十进制,但是这里并没有考虑到9之后怎么办&a…

测试用例的设计方法(黑盒)

1.基于需求的设计方法 比如针对网易邮箱进行测试:分为功能相关和非功能相关两大类 但是这么设计的话,有无数多个测试用例,我们现在看到的只是一些大概的测试用例,要想设计具体的测试用例,需要用到下面测试用例的方法…

okhttp关于header修改

在项目开发中,需要和后台定义一些规则,比如一些请求头信息,Content-Type,User-Agent。不能使用默认的,那么就得我们自己配置全局的。 基于okhttp4.0以上版本修改步骤: 创建我们自己的MediaType, create已经被废弃 val…

password game

目录 password game (1-2) (3) (4) (5) (6) (7) (8) (9) (10&am…

(C)2016c语言题

1.下列关于C语言中函数的说法,正确的是()。 A.函数经用户声明后才能调用 B.函数可以不受限制地互相调用 C.函数不能嵌套调用 D.一个函数可以被多个函数调用。 2.下列选项中,合法的C语言标识符是( )。 A.——123456789 B. 0xFF. C. extern D. #a 3.已知i…

css3文字环绕旋转

目录 固定数量文字环绕旋转不固定数量文字环绕旋转效果图 固定数量文字环绕旋转 <!-- 文字旋转测试 --> <template><div class"page"><div><div v-for"(item, index) in [...Array(20).keys()]" :key"index" style&…

desc相关注入

desc相关注入 补充

HBuilderX vue项目打包上传到服务器

完成后有个’dist’目录,把真个目录通过FTP 上传到服务器,Mac电脑使用cyberduck 上传 服务器使用‘宝塔’进行一件部署,基本上就是傻瓜式的点击下一步

某电力设计公司薪酬激励优化项目成功案例纪实

——优化薪酬结构&#xff0c;增加对优秀人才的激励倾向&#xff0c;提高员工工作积极性 【客户行业】电力行业 【问题类型】薪酬激励 【客户背景及现状分析】 某电力设计公司成立于2000年左右&#xff0c;是一家从事输变电工程勘察、设计、咨询的专业公司&#xff0c;至今成…

建行广东江门分行:科技赋能,数据助力纠“四风”

为进一步深化落实中央八项规定精神&#xff0c;持续加大“四风”问题查处力度&#xff0c;建行驻江门市分行纪检组根据《广东省分行贯彻落实中央八项规定精神持之以恒纠治“四风”实施方案》&#xff08;建粤党发〔2023〕1号&#xff09;安排&#xff0c;对驻在市分行开展“四风…

Vue项目中强制刷新页面的方法

我们在动态切换组件的过程中&#xff0c;导航栏和底栏不动&#xff0c;动态切换中间区域的情况&#xff0c;在首页可以进行跳转任意组件&#xff0c;在组件与组件之间不能相互跳转&#xff0c;路由发生了变化&#xff0c;但是页面未改变&#xff0c;这时我们就需要强制刷新页面…

如何用sklearn对随机森林调参

文章目录 一、概述二、实操1、导入相关包2、导入乳腺癌数据集&#xff0c;建立模型3、调参 三、总结 Link&#xff1a;https://zhuanlan.zhihu.com/p/126288078 Author&#xff1a;陈罐头 一、概述 sklearn是目前python中十分流行的用来实现机器学习的第三方包&#xff0c;其中…

凯美瑞 vs 太空船:Web3 游戏生长的两条路径

撰文&#xff1a;Teng Yan&#xff08;0xPrismatic&#xff09;&#xff0c;Delphi Digital 研究员 编译&#xff1a;TinTinLand 来源&#xff1a;https://0xprismatic.substack.com/p/my-short-web3-gaming-thesis 经常有人问我关于 Web3 游戏的看法&#xff0c;所以我想以这…