云原生(docker jenkins k8s)docker篇
docker
(1)架构

● Docker_Host:
○ 安装Docker的主机
● Docker Daemon:
○ 运行在Docker主机上的Docker后台进程
● Client:
○ 操作Docker主机的客户端(命令行、UI等)
● Registry:
○ 镜像仓库
○ Docker Hub
● Images:
○ 镜像,带环境打包好的程序,可以直接启动运行
● Containers:
○ 容器,由镜像启动起来正在运行中的程序
(2)安装
- 移除以前docker相关包
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 配置yml源
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装docker
#安装最新版本的
sudo yum install -y docker-ce docker-ce-cli containerd.io
#安装指定版本的
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
- 启动
systemctl enable docker --now
- 配置加速
在阿里云服务找到-容器镜像服务

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://nnyse9wk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3.常用命令和说明
(1)下载、删除镜像
#下载最新版本
docker pull nginx
#下载指定版本
docker pull nginx:1.20.1
#查看下载的所有镜像
docker images
#删除镜像
docker rmi 镜像名:版本号/镜像id
docker rmi nginx:1.20.1
#或者
docker rmi c8d03f6b8b91
(2)启动容器、删除容器
#简单运行
docker run nginx:1.20.1
#参数化运行
# --name 设置容器的别名
# -d后台启动
# --restart=always 开机自启
#-p 映射端口,将主机的9010和容器的80端口对应
docker run --name=mynginx -d --restart=always -p 9010:80 nginx:1.20.1
#查看正在运行中的容器
docker ps
# 查看所有
docker ps -a
# 删除停止的容器
docker rm 容器id/名字
docker rm -f mynginx #强制删除正在运行中的
#停止容器
docker stop 容器id/名字
#再次启动
docker start 容器id/名字
4、进入容器
(1)进入容器,修改容器内容
# 进入容器内部的系统,修改容器内容
docker exec -it 容器id /bin/bash
#修改nginx页面
cd /usr/share/nginx/html
echo "this is nginx index" > index.html
#退出nginx
exit

(2)挂载数据到外部修改
#-v表示挂载 将/usr/share/nginx/html挂载到根目录的/dta/html并赋予读写权限,ro是只读权限
docker run --name=mynginx -d --restart=always -p 88:80 -v :/usr/share/nginx/html:rw nginx:1.20.1
此时修改data/html会映射到容器内
例子:将nginx的配置文件挂载到/data/conf下
首先在在/data/conf下将nginx.conf文件复制过来。因为使用-v只能建立文件夹
然后执行
docker run -d -p 80:80 -v /data/conf/nginx.conf:/etc/nginx/nginx.conf --name mynginx-02 nginx
5、修改提交,供远程使用
(1)将自己修改好的容器,使用commit保存在本地仓库,供以后回滚
docker commit -a "cgy" -m "首页变化" 8d44b98ca259 testnginx:v1.0

(2)将容器保存成tar包,提供下载,供其他机器使用
#将镜像文件打包成tar,然后下载通过u盘传输,或使用传输命令
docker save -o abc.tar testnginx:v1.0
#使用命令将tar包传输到114.115.128.34服务器,前面是用户名,后面是传到的地址,然后输入密码
scp abc.tar root@114.115.128.34:/root/
#在34服务器上加载镜像
docker load -i abc.tar
(3)将镜像推送到远程仓库,其他机器,通过pull拉取
#先打新tag 后面的以华为云为例,要推入仓库的仓库/组织/镜像名:新定义的tag
docker tag testnginx:v1.0 swr.cn-north-4.myhuaweicloud.com/cloud-cgy/mynginx:t1.0
#推送先登录 用户名 密码 推送地址
docker login -u cn-north-4@xxxxx -p 03c4d9434d665de21b6f2c9ec593 swr.cn-north-4.myhuaweicloud.com
#推送
sudo docker push swr.cn-north-4.myhuaweicloud.com/cloud-cgy/mynginx:t1.0
#如果其他的机器想使用先登录,然后pull
docker pull swr.cn-north-4.myhuaweicloud.com/cloud-cgy/mynginx:t1.0
6、查看docker日志
#进行排错时
docker logs 容器名/id
#进入容器
docker exec -it 容器id /bin/bash
7、copy镜像里面的文件
#把容器指定位置的东西复制出来
docker cp 5eff66eec7e1:/etc/nginx/nginx.conf /data/conf/nginx.conf
#把外面的内容复制到容器里面
docker cp /data/conf/nginx.conf 5eff66eec7e1:/etc/nginx/nginx.conf
docker 构建springboot项目
(1)安装redis
新建/data/redis/redis.conf文件,可以把redis的配置文件copy到改目录
docker run -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d --name myredis -p 9002:6379 redis:latest redis-server /etc/redis/redis.conf
说明:
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
--name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载目录,规则与端口映射相同。
为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/data/redis/redis.conf
(2)redis设置密码
重启redis
docker restart 容器id
(3)dockerfile构建应用镜像
1.构建镜像
在项目下创建Dockerfile文件
FROM openjdk:8-jdk-slim
LABEL maintainer=leifengyang
COPY target/*.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

上传target目录和jar包以及 Dockerfile。在Dockerfile所在目录下执行
#-t表示给运行容器赋值名字和版本 -f表示使用那个dockerfile文件 .表示在当前目录下工作
docker build -t java-demo:v1.0 -f Dockerfilr .
2.启动镜像
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0
k8s篇参考语雀笔记
云原生(docker jenkins k8s)docker篇的更多相关文章
- 云原生 • Kubernetes 认识 k8s、k8s 架构、核心概念点介绍
云原生 • Kubernetes 认识 k8s.k8s 架构.核心概念点介绍 一.Kubernetes 简介Kubernetes 简称 k8s,是支持云原生部署的一个平台,起源于谷歌.谷歌早在十几年之 ...
- 云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上
@ 目录 概述 定义 工作原理 主要组件 核心概念 环境准备 概述 安装Kubekey 创建K8S 安装K9S OpenLB 安装ArgoCD 安装 ArgoCD CLI 从Git库中创建一个应用程序 ...
- Longhorn 企业级云原生容器存储解决方案-部署篇
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生分布式块存储解决方案设计架构和概念 安装 Longhorn 可以通过多种方式安装 ...
- 从零搭建云原生技术kubernetes(K8S)环境-通过kubesPhere的AllInOne方式
前言 k8s云原生搭建,步骤有点多,但通过kubesphere,可以快速搭建k8s环境,同时有一个以 Kubernetes 为内核的云原生分布式操作系统-kubesphere,本文将从零开始进行kub ...
- Longhorn,企业级云原生容器分布式存储 - K8S 资源配置示例
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...
- Docker: Jenkins与Docker的自动化CI/CD流水线实战
什么是CI/CD 持续集成(Continuous Integration,CI):代码合并.构建.部署.测试都在一起,不断地执行这个过程,并对结果反馈.持续部署(Continuous Deployme ...
- 云原生之旅 - 2)Docker 容器化你的应用
前言 上文中我们用Golang写了一个HTTP server,本篇文章我们讲述如何容器化这个应用,为后续部署到kubernetes 做准备. 关键词:Docker, Containerization, ...
- docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)
前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...
- Longhorn,企业级云原生容器分布式存储 - 高可用
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 企业级云原生容器分布式存储解决方案设计架构和概念 Longhorn 企业级云原生容器分 ...
- Longhorn 云原生容器分布式存储 - Air Gap 安装
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...
随机推荐
- 聊聊分布式解决方案Saga模式
Saga模式 Saga模式使用一系列本地事务来提供事务管理,而一个本地事务对应一个Saga参与者,在Saga流程里面每一个本地事务只操作本地数据库,然后通过消息或事件来触发下一个本地事务,如果其中一个 ...
- 聊聊CSS 缓动函数的新成员linear()
CSS 缓动函数是一种用于控制 CSS 动画过渡效果的函数,可以让动画变得更加自然.这篇文章将介绍一种新的 CSS easing function,即 linear(),它可以模拟出更复杂的缓动效果, ...
- vim 之中 U 命令的浅析
以下文章来源于CSDN,作者黑翼天使56,本文章经原作者同意后授权转载. 今天看 vim帮助文档的 user-manual 的第二章,发现了还有U(大写)这个命令,于是反复实验,略微搞懂了一点它的用处 ...
- 使用c#实现23种常见的设计模式
使用c#实现23种常见的设计模式 设计模式通常分为三个主要类别: 创建型模式 结构型模式 行为型模式. 这些模式是用于解决常见的对象导向设计问题的最佳实践. 以下是23种常见的设计模式并且提供c#代码 ...
- 使用C语言实现简单的通用的链表
在数据结构中,我们已经学习到了简单的静态链表以及单链表和双链表,它们各有优缺点,但是有个共同的问题是他们呢无法存储不同的数据.下面提供了一种方法,可以将不同节点的数据链接起来. 下面的代码都是基础的C ...
- 文字生成图像 AI免费工具第二弹 DreamStudio
介绍Stable Diffution,就也要提一下DreamStudio,它是Stable Diffusion的母公司Stability AI开发的一个文字生成图像工具,邮箱注册后可以免费生成125张 ...
- CF1817E Half-sum
题意 有一个大小为 \(N\) 的非负整数集合 \(A\),每次你可以从集合中取任意两个数,并将它们的平均数放回序列.不停操作,知道集合最后剩下两个数.请求出这两个数的差的绝对值的最大值对 \(10^ ...
- 二分查找法upper版(找大于某个值的最小下标)递归+非递归版
需求:比如说查询一个班级大于60分的最低分等等. 思路与二分法基本相同,只不过是对比的逻辑发生了一些小变化,这里所说的上界就是指大于某个值的最小下标. 当mid < target :说明 tar ...
- 1. SpringMVC 简介
1. 什么是 MVC MVC是一种软件架构的思想,将软件按照模型.视图.控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实 ...
- 使用Git进行版本控制和协作:代码共享、协作和版本管理
目录 引言 Git 是一款开源的分布式版本控制系统,它已经成为了现代软件开发中必不可少的工具之一.在这篇文章中,我们将介绍如何使用 Git 进行版本控制和协作,以实现代码共享.协作和版本管理.Git ...

