首页
统计归档
留言墙
关于我
Search
1
Java 中的 cron 表达式使用
136 阅读
2
宽度确定的情况下,如何让高度等于宽度
78 阅读
3
docker 安装nacos
56 阅读
4
人工智能误区
55 阅读
5
2023年的日子
55 阅读
web开发
硬件、电子
常见芯片
常见传感器
机械结构
系统、容器
往事前言
读书
登录
Search
标签搜索
docker
人工智能
浪潮之巅
JJia
累计撰写
55
篇文章
累计收到
78
条评论
首页
栏目
web开发
硬件、电子
常见芯片
常见传感器
机械结构
系统、容器
往事前言
读书
页面
统计归档
留言墙
关于我
搜索到
16
篇与
的结果
2022-06-07
宽度确定的情况下,如何让高度等于宽度
代码直接上代码.box{ position:relative; width:60%;//这个宽度随意 height:0; padding-bottom: 60%;//这个就保证和width一样就行了 } .box > .content{ position:absolute; width:100%; height:100%; } 知识点:padding 的大小是根据width 的大小来决定的。
2022年06月07日
78 阅读
20 评论
2 点赞
2022-06-06
docker 安装nacos
1、安装mysql1.1、创建数据库1.2、创建用户用户:nacos,密码:nacos注意:nacos 用户权限问题1.3、下载SQL文件https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql1.4、创建数据和配置存放目录# 创建 nacos 配置存放目录 mkdir -p /home/docker/nacos/conf && chown -R 200 /home/docker/nacos/conf# 创建 nacos 日志存放目录 mkdir -p /home/docker/nacos/logs && chown -R 200 /home/docker/nacos/logs# 创建 nacos 数据存放目录 mkdir -p /home/docker/nacos/data && chown -R 200 /home/docker/nacos/data2、安装 Nacos2.1、运行 Nacosdocker run -d -p 8848:8848 \ --name nacos \ --env MODE=standalone \ --env SPRING_DATASOURCE_PLATFORM=mysql \ --env MYSQL_SERVICE_HOST=191.168.1.1 \ --env MYSQL_SERVICE_PORT=3306 \ --env MYSQL_SERVICE_DB_NAME=nacos \ --env MYSQL_SERVICE_USER=nacos \ --env MYSQL_SERVICE_PASSWORD=nacos \ nacos/nacos-server:latest2.2、复制相关文件docker cp -a nacos:/home/nacos /home/docker/删除 nacos 容器docker rm -f nacos2.3、自定义启动 Nacosdocker run -d -p 8848:8848 \ --name nacos \ --restart=always \ --env MODE=standalone \ --env SPRING_DATASOURCE_PLATFORM=mysql \ --env MYSQL_SERVICE_HOST=192.168.1.1 \ --env MYSQL_SERVICE_PORT=3306 \ --env MYSQL_SERVICE_DB_NAME=nacos \ --env MYSQL_SERVICE_USER=nacos \ --env MYSQL_SERVICE_PASSWORD=nacos \ -v /home/docker/nacos/conf:/home/nacos/conf \ -v /home/docker/nacos/logs:/home/nacos/logs \ -v /home/docker/nacos/data:/home/nacos/data \ nacos/nacos-server:latest自定义启动 Nacos 参数介绍,不要用这个# 指定 nacos 对外映射端口,例如:8000:8848 docker run -d -p 8848:8848 \ # 自动启动 --restart=always \ # docker 容器名称 --name nacos \ # 自定义分配网络,可忽略 --network woniu_network \ # 自定义分配 IP 地址,可忽略 --ip 172.0.0.28 \ # nacos 单机实例 --env MODE=standalone \ # nacos 数据源 MySQL --env SPRING_DATASOURCE_PLATFORM=mysql \ # MySQL 主机地址,记得改成自己数据库地址 --env MYSQL_SERVICE_HOST=172.0.0.5 \ # MySQL 端口号 --env MYSQL_SERVICE_PORT=3306 \ # MySQL 数据库名称,记得在对应的数据库执行从 github 下载的 SQL 文件 --env MYSQL_SERVICE_DB_NAME=nacos \ # MySQL 用户名称,例如:root --env MYSQL_SERVICE_USER=nacos \ # MySQL 服务密码,例如:123456 --env MYSQL_SERVICE_PASSWORD=nacos \ # docker 文件映射,把 nacos 容器中文件和本地路径映射起来,方便操作和持久化 # nacos 配置文件目录 -v /home/docker/nacos/conf:/home/nacos/conf \ # nacos 日志文件目录 -v /home/docker/nacos/logs:/home/nacos/logs \ # nacos 数据文件目录 -v /home/docker/nacos/data:/home/nacos/data \ # 指定 docker nacos 版本,示例:nacos/nacos-server:v2.0.4 nacos/nacos-server:latest ##2.4、删除 Nacos # 删除 nacos 容器 docker rm -f nacos3、相关页面3.1、登录界面Nacos 控制台,默认用户名:nacos,默认密码:nacos ,点击登录
2022年06月06日
56 阅读
14 评论
0 点赞
2022-05-21
drone-cli 自动发布
引子最近公司业务重构,架构升级到了微服务,模块是一个接着一个的加,更新发布手动打包上传是真的麻烦,一件很无聊的事。有问题就有解决办法,搞个自动发布不就行啦。目前接触和使用过的几种自动发布的方案有如下:直接使用docker:流程如下,服务器端安装号docker服务端,并开启远程访问(开启使用密钥登录),如果使用idea开发,在插件市场安装docker插件,配置好远程服务器地址并能正确访问,在项目内编写好DockerFile,配置编译或者打包或者发布的时候关联docker build 构建docker镜像,然后通过idea的docker操作栏进行容器的启动。git + maven + shell 脚本:这个是属于半自动发布吧,流程是这样,服务器安装配置好git和maven,在IDE里编辑好代码后,push到git仓库,服务器编写一个shell脚本(python 或者bat脚本也行,只要可以操作maven和git),通过ssh登录到远程服务器后运行该脚本(此脚本的处理流程为,拉取指定仓库的代码,切换到指定的分支,maven编译和打包该代码,将原来的程序文件备份,命令行操作停止原来的程序,启动此版本的程序),完成程序更新。git仓库(gitlab或者gogs此类带webhook的仓库)+ 自动发布的程序(Jenkins或者drone-cli)这种自动化程度比较高,定制性也比较强,总体的流程为提交代码,触发git仓库的webhook,webhook访问自动发布程序,自动发布程序根据制定好的流程进行一步步操作,比如,克隆代码->编译->验证->登录远程服务器->拷贝文件->启停应用程序;大体是这个流程。小结目前的常见的就是这几种,当然方式很多,只不过别的没咋接触过,有别的可以下方留言学习下哈。方式千千万,但得找个适合自己的不是,看自己的场景吧,小项目,数量少,服务器数量少,感觉可以用docker,比如自己搞个博客,想改改源代码,直接docker搞起来就行了,如果你的项目比较复杂,编译比较耗时,打好的包比较大,可以用第二种,当然,用第三种结合第二种也行哈,如果项目比较多,部署比较复杂,服务器比较多,第三种应该是个比较好的选择。如果使用第三种,那又要进行一波选择,用哪个程序比较好呢(有实力的可以进行自研。)我只调研过jenkins和drone,Jenkins大名鼎鼎,老牌选手了,功能比较完善,其优点也是其缺点,功能太多了,有点臃肿。drone-cli功能相对来说是比较简单,但是自动发布,定时发布,ssh远程登录,文件拷贝,这些功能都有。drone-cli 依赖docker实现自动发布,基础架构分为服务端和runner,通过webhook调用后进行后续操作。其官网可以看这里 drone官网使用流程:1:安装docker环境都可以找到的资料就不写了,可以看此处《菜鸟教程》的centos安装docker,以下内容是摘抄过来的使用官方安装脚本自动安装安装命令如下:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun也可以使用国内 daocloud 一键安装命令: curl -sSL https://get.daocloud.io/docker | sh手动安装卸载旧版本较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine**安装 Docker Engine-Community使用 Docker 仓库进行安装**在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。设置仓库安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。 sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2使用以下命令来设置稳定的仓库。使用官方源地址(比较慢)sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo可以选择国内的一些源地址:阿里云 sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo清华大学源sudo yum-config-manager \ --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo安装 Docker Engine-Community安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:sudo yum install docker-ce docker-ce-cli containerd.io如果提示您接受 GPG 密钥,请选是。有多个 Docker 仓库吗?如果启用了多个 Docker 仓库,则在未在 yum install 或 yum update 命令中指定版本的情况下,进行的安装或更新将始终安装最高版本,这可能不适合您的稳定性需求。Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。 yum list docker-ce --showduplicates | sort -r docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable2、通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io启动 Docker。sudo systemctl start docker通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。sudo docker run hello-world卸载 docker删除安装包:yum remove docker-ce删除镜像、容器、配置文件等内容:rm -rf /var/lib/docker设置自动自动:systemctl enable docker安装 gogsgogs(一个轻型的git仓库)拉取镜像:docker pull gogs/gogs安装gogsdocker run -p 10022:22 -p 10080:3000 --name=gogs \ -e TZ="Asia/Shanghai" \ -v /mydata/gogs:/data \ -d gogs/gogs浏览器访问:http://192.168.1.165:10080设置好用户名密码和数据库连接后进入gogs后台安装Drone拉取 Drone的Serverdocker pull drone/drone拉取 Drone的Runner(还有ssh runner如果需要自行安装,更多见drone runner)docker pull drone-runner-docker drone server和runner运行Server docker run \ -v /mydata/drone:/data \ -e DRONE_AGENTS_ENABLED=true \ -e DRONE_GOGS_SERVER=http://192.168.1.165:10080 \ -e DRONE_RPC_SECRET=dronerpc666 \ -e DRONE_SERVER_HOST=192.168.1.165:3080 \ -e DRONE_SERVER_PROTO=http \ -e DRONE_USER_CREATE=username:jjia,admin:true \ -e TZ="Asia/Shanghai" \ -p 3080:80 \ --restart=always \ --detach=true \ --name=drone \ drone/droneRunnerdocker run -d \ -v /var/run/docker.sock:/var/run/docker.sock \ -e DRONE_RPC_PROTO=http \ -e DRONE_RPC_HOST=192.168.1.165:3080 \ -e DRONE_RPC_SECRET=dronerpc666 \ -e DRONE_RUNNER_CAPACITY=2 \ -e DRONE_RUNNER_NAME=runner-docker \ -e TZ="Asia/Shanghai" \ -p 3000:3000 \ --restart always \ --name runner-docker \ drone/drone-runner-docker浏览器访问: (用户名密码为gogs的登录名和密码)http://192.168.1.165:3080/创建测试仓库:drone管理端同步仓库配置自动发布的设置gogs配置webhook代码仓库中添加自动发布的脚本--- kind: pipeline type: docker name: test_publish_pipeline #流程触发的方式 trigger: #指定分支 branch: - master #指定事件 event: - push steps: # 定义流水线执行步骤,这些步骤将顺序执行 - name: package # 流水线名称 image: maven:3-jdk-8 # 定义创建容器的Docker镜像 volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置 - name: mevan-setting path: /usr/share/maven/conf #同步配置 - name: mevan-cache path: /root/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载 commands: # 定义在Docker容器中执行的shell命令 - ls # 应用打包命令 - touch aaa # 应用打包命令 # - mvn clean # 应用打包命令 # - mvn install # 应用打包命令 - name: scp files image: appleboy/drone-scp settings: host: 192.168.1.11 username: root password: from_secret: rootloginpassword port: 22 command_timeout: 2m target: /home/pi/autopublish #tmp目录是远程主机的 source: ./** #需要传输的文件夹,当前目录 - name: start image: appleboy/drone-ssh # SSH工具镜像 settings: host: 192.168.1.11 # 远程连接地址 username: root # 远程连接账号 password: from_secret: rootloginpassword # 从Secret中读取SSH密码 port: 22 # 远程连接端口 command_timeout: 5m # 远程执行命令超时时间 script: #发布 - /home/pi/autopublish/publish.sh volumes: # 定义流水线挂载目录,用于共享数据 - name: mevan-setting #用于mevan下载加速 host: path: /mydata/maven/conf # 从宿主机中挂载的目录 - name: mevan-cache host: path: /mydata/maven/cache # 从宿主机中挂载的目录提交代码,测试脚本内容为:执行后
2022年05月21日
17 阅读
0 评论
0 点赞
2022-05-10
docker 镜像导入导出
方法一:1.保存save - 加载 load格式:docker save IMAGE(镜像)使用 docker images 查看本机已有的镜像(也可以使用 docker commit 命令把一个正在运行的容器保存为镜像),如:导出:格式:docker save imagesID > /存放位置/打包文件名.tar docker save 42cdba9f1b08 > /root/mysql-5.7.31.tar导入:格式:docker load < 打包文件名.tar docker load < mysql-5.7.31.tar问题:docker load -i 导入后 ,没有提示成功,也没有报错,docker images 看不到导入的镜像?如上,我的镜像是有名称和tag的解释:这是因为导出镜像save的时候用的是 IMAGE ID ,没有使用镜像名称,所以不会显示出来使用如下方式:1.导出的时候填写镜像的名字 docker save mysql > /root/mysql-5.7.31.tar2.导入镜像后重新打标签先找到刚刚导入的镜像,要知道imagesID docker images | grep 42cdba9f1b08 docker tag 42cdba9f1b08 mysql:5.7.31方法二:导出 export - 导入 import格式:docker export CONTAINER(容器)导出:格式:docker export 容器名 > /位置/打包名.tar docker export mysql > /root/mysql-5.7.31.tar导入:格式:docker import < 打包名.tar docker import < mysql-5.7.31.tar导出 export 与 保存 save 的区别(1).export导出的镜像文件大小 小于 save保存的镜像(2).export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag );而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images --tree)
2022年05月10日
14 阅读
0 评论
0 点赞
1
2
3