运行命令

Docker初体验

纵饮孤独 提交于 2019-11-30 10:47:03
断断续续的使用Docker好几年了,但是一直没有全面深入的去了解过,每次用到都是Google一下相关的命令解决临时的问题,到头来却毫无收获。好在,我终于意识到了这个问题,便决定从头开始,耐心的学学Docker,并把学习过程记录下来,方便以后参考,也望与大家交流学习。 本人比较偏爱Ubuntu,故本文所用命令皆基于Ubuntu 16.04,其他版本的命令会有稍有不同,本文不多做介绍。 目录 简介 容器 VS 虚拟机 安装 准备 安装 镜像加速 安装Docker Compose 常用命令 运行容器 管理容器 镜像管理 Dockerfile OnBuild Ignore File 简介 容器:将软件打包成标准化单元,以用于开发、交付和部署,而 Docker 是世界领先的软件容器平台。 容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。 容器 VS 虚拟机: 容器和虚拟机具有相似的资源隔离和分配优势,但功能有所不同,因为容器虚拟化的是操作系统,而不是硬件,因此容器更容易移植,效率也更高。 容器是一个应用层抽象,用于将代码和依赖资源打包在一起。多个容器可以在同一台机器上运行,共享操作系统内核,但各自作为独立的进程在用户空间中运行。与虚拟机相比,容器占用的空间较少(容器镜像大小通常只有几十兆),瞬间就能完成启动。 虚拟机 (VM)

docker 容器

本小妞迷上赌 提交于 2019-11-30 08:28:49
容器 是docker 的一个核心概念,容器是镜像的一个运行实例。镜像只是静态的只读文件,而容器是带有运行时需要的可写文件层,容器中的应用进程处于运行状态。 简单理解一个容器里包含着我们运行的程序,我们需要了解如何对容器进行操作,才正确维护我们容器中的应用程序。docker 提供了许多命令,用户可以高效地管理容器的整个生命周期。 创建容器 新建容器 容器的创建说简单简单说复杂又非常复杂,他有许多选项,包括容器的运行模式,容器的环境配置,容器的资源限制和容器的安全保护等。。,要掌握还是要一段时间的,下面是简单的通过一个镜像名为ubuntu,标签为latest的镜像,创建一个容器。 docker create -it ubuntu:latest 启动容器 创建容器后,我们通过下面这个命令将容器启动起来。 docker start 182ead1dfa60 新建并启动容器 我们可以通过下面这个命令直接创建并启动。 docker run ubuntu:latest 守护状态运行 创建容器加 -d 容器将在后台,以守护状态运行。 docker run -d ubuntu:latest 查看输出内容 获取容器输出信息 docker logs 182ead1dfa60 停止容器 暂停容器 启动容器 docker start 182ead1dfa60 暂停容器 docker pause

Composer的安装

这一生的挚爱 提交于 2019-11-30 07:48:35
点击这里>> Composer的安装 << 注意需要先开启openssl,对PHP的版本也有要求,如果安装过程中出现如下报错: he "https://getcomposer.org/versions" file could not be downloaded: SSL 请检查PHP版本是否过低,并且是否已经开启openssl 安装完成之后,windows 运行cmd进入命令窗口,输入composer --version 出现版本信息则表示安装成功! 来源: https://www.cnblogs.com/hool/p/11573230.html

浅谈MSF渗透测试

不想你离开。 提交于 2019-11-30 07:13:56
在渗透过程中,MSF漏洞利用神器是不可或缺的。更何况它是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。是信息收集、漏洞扫描、权限提升、内网渗透等集成的工具。 前不久MSF从4.7升级到MSF5.0,其中改进了数据库的处理逻辑,优化了msfconsole终端操作,并将PostgreSQL作为一个RESTful服务单独运行。此外还加入一个Web服务框架,新的免杀模块,优化了控制功能等。 下面小白总结了一下在渗透测试中,使用频率较多的MSF命令,分为以下几块来讲。 信息收集 发现目标网段的存活主机: 我们可以利用auxiliary这个模块来获取目标网端的信息,包括端口开放情况、主机存活情况。 auxiliary/scanner/discovery/arp_sweep auxiliary/scancer/smb/smb_version 存活的445主机 auxiliary/scanner/portscan/syn 端口扫描 auxiliary/scanner/telnet/telnet_version telent服务扫描 auxiliary/scanner/rdp/rdp_scanner 远程桌面服务扫描 auxiliary/scanner/ssh/ssh_version ssh主机扫描 。。。。。。

面试(四)

痞子三分冷 提交于 2019-11-30 06:34:03
Java中如何获取到线程dump文件 死循环、死锁、阻塞、页面打开慢等问题,打线程dump是最好的解决问题的途径。所谓线程dump也就是线程堆栈,获取到线程堆栈有两步: (1)获取到线程的pid,可以通过使用jps命令,在Linux环境下还可以使用ps -ef | grep java (2)打印线程堆栈,可以通过使用jstack pid命令,在Linux环境下还可以使用kill -3 pid 如何在两个线程之间共享数据 通过在线程之间共享对象就可以了,然后通过wait/notify/notifyAll、await/signal/signalAll进行唤起和等待,比方说阻塞队列BlockingQueue就是为线程之间共享数据而设计的 sleep方法和wait方法有什么区别 sleep方法和wait方法都可以用来放弃CPU一定的时间,不同点在于如果线程持有某个对象的监视器,sleep方法不会放弃这个对象的监视器,wait方法会放弃这个对象的监视器 为什么wait()方法和notify()/notifyAll()方法要在同步块中被调用 这是JDK强制的,wait()方法和notify()/notifyAll()方法在调用前都必须先获得对象的锁 wait()方法和notify()/notifyAll()方法在放弃对象监视器时有什么区别 区别在于: wait()方法立即释放对象监视器

.NET Core 代码安装服务启动

笑着哭i 提交于 2019-11-30 05:59:04
最近做了一些.NET Core的程序,有在Windows下运行的 有在CentOS 下运行的,Windows下运行的还好,对Windows下还算比较熟悉了,但CentOS 下 每次都是找笔记支持命令 于是今天晚上就干脆把以.NET Core程序已服务形式启动的代码封装了下,代码 主要是便于安装。 我们写好一个程序后 然后要已服务启动 每次都是需要输入命令,对于我这种不记单词的人来说太痛苦了, 当然windows环境下命令到是很简单。 废话不说了 先给大家看下效果 CentOS 下的运行效果是这样的 dotnet ConsoleApp2.dll -i 进行服务的安装 dotnet ConsoleApp2.dll -u 进行服务的卸载 安装完成后使用 ps x 进行进程查看 是否存在。 Window 下运行效果 安装完成,我们在到window 服务管理工具去看看 发现已经多了一个服务,说明安装成功了 然后再来分析代码 首先CentOS 下让程序以服务形式启动 我们需要做以下工作 1、写service文件 2、systemctl 启动service service文件内容如下: [Unit] Description="服务说明" [Service] Type=simple GuessMainPID=true WorkingDirectory=//项目路径 StandardOutput

康哲 20190919-2 功能测试

荒凉一梦 提交于 2019-11-30 05:55:23
此作业的要求参见 [ https://edu.cnblogs.com/campus/nenu/2019fall/homework/7627 ] 修改后代码git地址:https://e.coding.net/kangzhe/newruanjiangongcheng.git 要求1:找同学bug   功能一     (1)标题:         齐文华同学的功能一执行自动生成books.txt文件     (2)内容:         测试环境:WIN10家庭版64位操作系统         准备工作:pull齐文华同学代码         测试步骤:从控制台执行程序         运行结果:控制台并没有出入命令的操作,并且在本地文件夹下自动生成books.txt文件         预期结果:在控制台输入命令读取本地文件内容         差异:本地并没有预先准备好的txt文件,同时也不支持输入命令      (3)佐证材料:            小文件输入。 为表明程序能跑,结果真实而不是迫害老五,请他亲自键         盘在控制台下输入命令。           预期运行截图:                      实际运行截图:                           功能二     (1)标题:         付宇泽同学功能二输出时少一个换行  

Vim + Gdb 程序的完美集合

ε祈祈猫儿з 提交于 2019-11-30 05:14:25
[ GDB ] gdb中查看源代码执行路径 tui就是 terminal UI的意思 gdb -tui 代码窗口相关命令: info win 显示窗口的大小 layout next 切换到下一个布局模式 layout prev 切换到上一个布局模式 layout src 只显示源代码 layout asm 只显示汇编代码 layout split 显示源代码和汇编代码 layout regs 增加寄存器内容显示 focus cmd/src/asm/regs/next/prev 切换当前窗口 refresh 刷新所有窗口 tui reg next 显示下一组寄存器 tui reg system 显示系统寄存器 update 更新源代码窗口和当前执行点 winheight name +/- line 调整name窗口的高度 tabset nchar 设置tab为nchar个字符 gdb在执行中,会自动跟踪代码 GDB 调用gdb编译需要在cc后面加 -g参数再加-o; [root@redhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) break func:在函数func()的入口处设置断点 (gdb) info break: 查看断点信息 (gdb) r:运行程序 (gdb

Docker镜像创建、数据管理与网络通信

≡放荡痞女 提交于 2019-11-30 04:28:22
本章架构: Docker的创建方法 Docker的数据管理 Docker的网络通信 Docker镜像除了是Docker的核心技术之外,也是应用发布的标准格式。一个完整的Docker镜像可以支撑一个Docker容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器后,就可以在容器中进行操作,最常见的操作技术在容器中安装应用服务,如果要把已经安装的服务进行迁移,就要把环境及搭建的服务生成新的镜像。下面介绍这三种创建镜像的方法: 一、Docker镜像的创建方法 1.基于已有镜像创建 基于已有镜像创建主要使用docker commit 命令。其实质就是把一个容器里面运行的程序及该程序的运行环境打包起来生成新的镜像。 命令格式: docker commit 【选项】容器id/名称 仓库名称:【标签】 常用选项: -m:说明信息 -a:作者信息 -p:生成过程中停止容器的运行 方法如下: (1)使用镜像创建一个新的容器,并进行修改。 [root@localhost ~]# docker images //查看本地的Docker镜像 REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/centos latest 0f3e07c0138f 6 weeks ago 220 MB [root@localhost ~]# docker run -

《构建根文件系统(二)分析busybox源码》

半城伤御伤魂 提交于 2019-11-30 04:05:37
1.busybox   平时我们在开发板中输入ls、cp、mv等命令,都是在/bin文件中。而通过ls -l就可以发现      这些命令都是放在busybox中的。并且在内核启动后,通过ps命令,可以看到有一个init进程正在运行。      因此就先来分析一下,这个第一个运行的进程init。 2.init进程分析 来源: https://www.cnblogs.com/zhuangquan/p/11557781.html