首页 文章 精选 留言 我的

精选列表

搜索[一键部署],共10005篇文章
优秀的个人博客,低调大师

一键清理 Nexus 中无用的 Docker 镜像

欢迎访问陈同学博客原文 现许多团队使用 Nexus 来管理 Docker 镜像,产品不断迭代,镜像仓库占用的磁盘空间也越来越大。由于 Nexus 的控制台并未提供批量操作镜像功能,清理镜像十分不便。本文分享一个清理 Nexus 中 Docker 镜像的小工具 — nexus-cli。 可参考 nexus-cli 的相关资料,nexus-cli GitHub、开发者博客原文、Nexus 官方博客文章。 下面结合 nexus-cli + sublime 做一个演示。 下载脚本并授权 wget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-cli chmod +x nexus-cli 配置待清理的库 $ nexus-cli configure Enter Nexus Host: http://127.0.0.1:8081 Enter Nexus Repository Name: demo Enter Nexus Username: admin Enter Nexus Password: xxxxxx http://127.0.0.1:8081 是 Nexus 服务的地址,为了安全,可以直接在 Nexus 所在的机器处理。 列出所有镜像 $ nexus-cli image ls oauth-service report-service fund-service ... 这里仅列出三个作为例子。 清理镜像 nexus-cli image delete -name IMAGE_NAME -keep X,-keep X 表示保留几个tag 清理单个镜像的tag,这里仅保留最新的两个tag $ nexus-cli image delete -name fund-service -keep 2 fund-service:2018.11.1-113322 image will be deleted ... fund-service:2018.11.1-113322 has been successful deleted fund-service:2018.11.1-145912 image will be deleted ... fund-service:2018.11.1-145912 has been successful deleted ... 清理所有镜像的tag,结合 sublime 的批量处理功能,十分方便。 清理磁盘空间 最后,创建两个Nexus Task 来清理物理空间。先运行 Purge unused docker manifests and images,再运行 Compact blob store。 此时,可以查看磁盘目录 sonatype-work/nexus3/blobs/ 的磁盘占用情况。 $ du -lh --max-depth=1 . | grep demo 2.1G ./demo 小结 由于开发测试环境中应用迭代非常频繁,镜像消耗磁盘的速度也非常快。若磁盘空间足够,每隔一定时间手工清理即可;若需要频繁清理,使用脚本自动化处理也十分方便。 文首列举的 nexus-cli 的资料中,有 nexus-cli 的更多操作命令,可自行参考。 欢迎关注陈同学的公众号,一起学习,一起成长

优秀的个人博客,低调大师

Python一键上传旅途照片生成展示网页

作为一个比较喜欢出去见识世界、看看自然风光的人,这几年有幸跑了一些地方,在祖国大地不同的地方见识了不同的人文风物,手机里也存了不少照片,想着如果以某种方式展现来回忆我的旅途的话,或许会给自己带来不一样的体验。目标口号已经想好:去过的风景,直观丰富地展示你的人生旅途,带来新的回忆感受。在看到leaflet开源地图库时,觉得可以比较简单地初步实现我的想法。 初步效果 效果图1 - 60多张照片的效果图 效果图2 - 点击显示当时的照片 效果图3 - 可以进一步加入文字描述内容与动态效果 思路 一般手机照片都包含丰富的信息,如拍摄时间等等,而python又有强大的PIL图像处理库,使得我们可以轻松解析照片信息。在服务端我们可以使用Django来负责产生简单的上传机制,将上传的图片放入静态资源文件夹以提供路由,并且对照片进行解析,获得的信息利用

优秀的个人博客,低调大师

Ubuntu14.04,使用Docker一键安装EduSoho

版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396615 参考原文:http://www.qiqiuyu.com/course/20/task/1839/show注意:您的操作系统必须是没有安装Nginx的全新系统,否则会覆盖之前的安装和配置文件。安装过程中需要访问外网。 (必须使用root用户)按照下列步骤完成安装:1、下载安装脚本: wget http://www.qiqiuyu.com/es-ubuntu-docker.sh 2、增加可执行权限: sudo chmod +x es-ubuntu-docker.sh 3、执行脚本: ./es-ubuntu-docker.sh 等待安装结束后,打开浏览器,使用域名(请提前将域名解析到该服务器)访问。 进入EduSoho初始化向导界面, 数据库名为edusoho, 点击创建数据库。 根据提示完成网站其它信息的填写,安装完成。 关于安装脚本的说明:由于是使用Docker安装的EduSoho,物理机上只会安装Nginx来对外部请求做转发,本教程仅供试用,所以如果需要对程序进行开发或者调试操作的,请自学Docker相关知识。

优秀的个人博客,低调大师

【iOS开发】一键表达对女儿的爱

看到可爱的女儿一天天地长大,作为父亲的我的心里非常的高兴。最近,我做了一个简单的iOS程序,聊表我对女儿的爱。 程序简介 在屏幕的中间,有一个以女儿小名命名的按钮,如图1所示。 图1 屏幕布局示意图 当点击该按钮的时候,会弹出表达爱意的消息,如图2所示。 图2 弹出消息内容 程序实现 打开Xcode工具,新建iOS工程Love,将一个Button拖入Main.storyboard中,并将其命名为“琪琪”。同时,调整该Button在屏幕上的位置,效果如图1所示。然后,将该按钮关联到“showMessage”事件处理方法。 经过上面的处理之后,我们接着来修改“showMessage”方法的代码。修改之后的代码如下: - (IBAction)showMessage:(id)sender { UIAlertView *helloWorldAlert = [[UIAlertView alloc] initWithTitle:@"My dear daughter" message:@"I love you!" delegate:nil cancelButtonTitle:@"I love you, my father, too!" otherButtonTitles:nil]; [helloWorldAlert show]; } 对程序做几点说明: 第一,程序利用UIAlertView来生成弹出式对话框,创建UIAlertView时可指定对话框的标题(Title)、消息内容(message)等信息。对应到上面的代码,我们创建的对话框的标题是“My dear daughter”,消息内容是“I love you!”,而当点击“I love you, my father, too!”的时候,该对话框便消失了。 第二,为了将我们设置的内容显示出来,这里需要调用UIAlertView的show方法。 总结 借助强大的开发工具Xcode,一个送给女儿的小小的礼物就产生了。希望当女儿懂事的时候,能够感受到当年父亲对她的爱,也能够将这种爱传递下去。

优秀的个人博客,低调大师

docker 容器部署

Docker 容器 : 容器是Docker又一核心的概念,简单来说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。 接下来具体介绍如何管理一个容器,包括创建、启动和停止等。 启动容器有两种方式: (1.)第一种是基于镜像新建一个容器并启动。 所需要的命令主要为docker run 实例: -t:让docker分配一个为终端(paseudo-tty)并绑定到容器的标准输入上 -i:让容器的标准输入保持打开(即交互式),可以使用-name给容器起个形象的名称。 在交互模式下,用户可以通过所创建的终端来输入命令 例如: 容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它的资源。可以在伪终端中利用ps或top来查看进程信息。 可见,容器中仅允许了指定的bash应用。这种特点使得Docker对资源利用率极高,是货真价实的轻量级虚拟化。 退出容器的方式: logout exit Ctrl+d Ctrl+c Ctrl -p + Ctrl -q 下面的命令是输出一个hello world 消息,终止容器。 当利用docker run 来创建容器时 ,Docker在后台运行的标准操作包括: 1.检查本地是否存在指定的镜像,不存在就从公有仓库下载 2.利用镜像创建并启动一个容器 3.分配一个文件系统,并在只读的镜像层外面挂载一层可读写层 4.从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去 5.从地址池配置一个IP地址给容器 6.执行用户指定的应用程序 7.执行完毕后容器被终止 查看容器: (2.)第二种是将在终止状态(stoped)的容器重新启动。 可以利用docker start 命令,直接将一个已经终止的容器启动运行 可以使用docker stop 来终止一个运行的容器。此外,当docker容器中指定的应用终结时,容器也自动 终止。终止状态的容器可以用docker ps -a 命令看到。 重启一个容器: 二、守护进程方式去运行docker 1.更多的时候,需要让docker容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加 -d 参数来实现。 例如: 或者 容器启动后会返回一个唯一的ID值,也可以通过docker ps 命令来查看容器信息 1.docker卡 run -d 运行提个新的容器,我们通过-d 命令来查看容器信息。 2.centos:centos6 是一个我们想要在内部运行命令的镜像。 3./bin/sh -c 是我们想要在容器内部运行的命令 4.while true;do echo hello weibo;sleep 1; done这是一个简单的脚本,我们仅仅是每秒打印一 次 hello world 一直到我们结束它。 2.用 docker inspect查看容器的信息 用docker inspect 查看容器的IP地址 用docker inspect 查看容器执行的程序 3.进入容器: 在使用-d参数时,容器启动后会进入后台。某些时候需要进入容器进行操作,有很多种方法,包括使 用docker attach命令或nsenter命令。 (1.) 使用docker attach进入容器: 1.docker attache 允许我们进入后台进程 2.--sig-proxy=false 不使用容器转发信号,允许我们使用Ctrl -c来退出,执行docker ps查看在后台运行。 但是使用 attache 命令有时候并不方便。当多个窗口同时attach到同一个容器的时候,所有窗口都会 同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。 3.也可以执行docker exec进入运行的容器 (2.)使用nsenter进入容器: 安装:nsenter工具在util-Linux包2.23版本后包含。如果系统中util-Linux包没有该命令,可以按照 下面的方法从源码安装 #wgethttps://www.kernel.org/pub/utils/util-linux/v2.24/util-linux-2.24.tar.gz #tar util-linux-2.24.tar.gz #cd util-linux-2.24 # ./configure --without-ncurses&& make nsenter # cp nsenter /usr/local/bin 注意:nsenter可以访问另一个进程的名字空间。nsenter要正常工作需要有root权限。 庆幸的是centos7使用的是util-linux-2.23,所以就直接使用系统提供的util-linux包了。 为了使用nsenter命令工具连接到容器,还需要找到容器的第一个进程的pid,可以通过下面的命令获取到。 附:更简单的,建议大家下载 .bashrc_docker,并将内容放到 .bashrc中 #wget ~https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker #echo "[-f ~/.bashrc_docker] && ~/.bashrc_docker">>~/.bashrc #source ~/.bashrc 这个文件中定义了很多方便使用Docker的命令,例如docker-pid可以获取某个容器的pid;而docker- enter 可以进入容器或直接在容器内执行命令。 echo $(docker-pid<container>) docker-enter<container>ls 三、容器的导入和导出以及删除容器 (1.)导出容器 如果要导出本地某个容器,可以 使用docker export命令。 (2.)导入容器 可以使用docker import 从容器快照文件中再导入为镜像 除此之外,也可以通过指定URL或者某个目录来导入。例如: #docker importhttp://example.com/exampleimage.tgzexample/imagerepo 注意: docker load 和 docker import 的区别: 用户既可以使用docker load 来导入镜像存储文件到本地镜像库,也可以使用docker import来导入一个 容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保 存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入 时可以重新指定标签等元数据信息。 删除容器: 可以使用 docker rm来删除一个处于终止状态的容器 如果要删除一个运行中的容器,可以添加 -f 参数。docker会发送SIGKILL信号给容器。 批量删除多个容器:

优秀的个人博客,低调大师

TensorFlow安装部署

1.环境依赖 Centos7 组件 版本 Python 2.7.5 TensorFlow 0.14.0 pyhton依赖库 Package Version -------------------- --------- absl-py 0.8.0 astor 0.8.0 backports.weakref 1.0.post1 enum34 1.1.6 funcsigs 1.0.2 futures 3.3.0 gast 0.2.2 google-pasta 0.1.7 grpcio 1.23.0 h5py 2.9.0 Keras-Applications 1.0.8 Keras-Preprocessing 1.1.0 Markdown 3.1.1 mock 3.0.5 numpy 1.16.5 pip 19.2.3 protobuf 3.9.1 setuptools 41.2.0 six 1.12.0 tensorboard 1.14.0 tensorflow 1.14.0 tensorflow-estimator 1.14.0 termcolor 1.1.0 Werkzeug 0.15.5 wheel 0.33.6 wrapt 1.11.2 2.资源准备 安装包下载 百度云盘链接:https://pan.baidu.com/s/1cm9mZpP1JRwyGpq945ffaQ 提取码:8bxj 3.安装 a).安装python-devel ## 在线安装 yum install python-devel ## 离线安装 rpm -ivh python-devel-2.7.5-80.el7_6.x86_64.rpm b).安装virtualenv ## 在线安装 pip install virtualenv ## 离线安装 c).安装tensorflow 进入虚拟机,安装tensorflow ## Step1: 创建虚拟机 virtualenv tensorflow ## Step2: 进入虚拟机 source ./tensorflow/bin/activate ## 在线安装 pip install tensorflow ## 离线安装 pip install --no-index --find-links=/path/to/tensorflow_1.14.0_package -r tensorflow_requirement.txt 4.测试 测试代码 import tensorflow as tf mnist = tf.keras.datasets.mnist (x_train, y_train),(x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, epochs=5) model.evaluate(x_test, y_test) 执行测试 python test.py 测试结果 5.环境依赖下载 ## python-devel http://mirror.centos.org/centos/7/updates/x86_64/Packages/python-devel-2.7.5-80.el7_6.x86_64.rpm ## tensorflow-1.14.0 https://files.pythonhosted.org/packages/d3/59/d88fe8c58ffb66aca21d03c0e290cd68327cc133591130c674985e98a482/tensorflow-1.14.0-cp27-cp27mu-manylinux1_x86_64.whl ## pip-19.2.3 https://files.pythonhosted.org/packages/00/9e/4c83a0950d8bdec0b4ca72afd2f9cea92d08eb7c1a768363f2ea458d08b4/pip-19.2.3.tar.gz ## virtualenv https://files.pythonhosted.org/packages/f7/69/1ad2d17560c4fc60170056dcd0a568b83f3453a2ac91155af746bcdb9a07/virtualenv-16.7.4-py2.py3-none-any.whl

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册