运行命令

docker入门

谁说我不能喝 提交于 2019-12-15 03:46:35
1、Docker 简介 2、Centos7 安装 Docker 3、Docker HelloWorld 运行原理解析 4、阿里云镜像仓库配置 5、docker 常用命令 Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app ) , 更重要的是容器性能开销极低。 Docker 从 17.03 版本之后分为 CE ( Community Edition: 社区版) 和 EE ( Enterprise Edition: 企业版),我们用社区版就可以了。 Docker 官网: https://www.docker.com/ Docker 的应用场景 Web 应用的自动化打包和发布。 自动化测试和持续集成、发布。 在服务型环境中部署和调整数据库或其他的后台应用。 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。 Docker 的优点 1 、简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的

linux系统——ld-linux.so.X查找和加载共享动态库的顺序

橙三吉。 提交于 2019-12-15 03:27:00
linux系统——ld-linux.so.X查找和加载共享动态库的顺序 ld-linux.so查找共享库的顺序: Glibc安装的库中有一个为ld-linux.so.X,其中X为一个数字,在不同的平台上名字也会不同。可以用ldd查看: #ldd /bin/cat linux-gate.so.1 => (0x00bfe000) libc.so.6 => /lib/libc.so.6 (0x00a4a000) /lib/ld-linux.so.2 (0x00a28000) 最后一个没有“=>”的就是。其中第一个不是实际的库文件,你是找不到的,它是一个虚拟库文件用于和kernel交互。 /lib/ld-linux.so.2以及它的64位版本/lib64/ld-linux-x86-64.so.2虽然看起来是共享库文件,但实际上他们可以独立运行。他们的功能是负责动态加载。它们通过读取可执行文件的头部信息来确定哪些库文件是必须的,以及哪些需要加载。加载完成后,它会通过修正执行文件里的相关的地址指针来和加载的库文件完成动态链接,此时程序就可以运行了。 ld-linux.so是专门负责寻找库文件的库。以cat为例,cat首先告诉ld-linux.so它需要libc.so.6这个库文件,ld-linux.so将按一定顺序找到libc.so.6库再给cat调用。 那ld-linux

docker入门以及docker常用命令

给你一囗甜甜゛ 提交于 2019-12-14 22:09:40
Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。 Docker官网:https://www.docker.com/ Docker的应用场景 Web 应用的自动化打包和发布。 自动化测试和持续集成、发布。 在服务型环境中部署和调整数据库或其他的后台应用。 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。 Docker 的优点 1、简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务

docker入门,docker命令

被刻印的时光 ゝ 提交于 2019-12-14 21:40:31
目标 1、Docker简介 2、Centos7安装Docker 3、Docker HelloWorld运行原理解析 4、阿里云镜像仓库配置 5、Docker基本命令 6、Docker镜像常用命令 7、Docker 容器常用命令 Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。 Docker官网: link Docker的应用场景 Web 应用的自动化打包和发布。 自动化测试和持续集成、发布。 在服务型环境中部署和调整数据库或其他的后台应用。 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。 Docker 的优点 1、简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux

Linux进程关闭和后台运行解析

倖福魔咒の 提交于 2019-12-14 17:01:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.问题背景 Java是跨平台的,大部分程序也都是在Linux服务器上运行的。但是很多朋友其实对服务器了解并不多,对相关知识也是一知半解。很多概念可能知道,但是并不十分清楚,仅仅是基本运用。可能很多新手朋友脱离了IDE或者web容器,都不知道怎么在服务器上运行程序。 举个简单的例子,相信很多朋友刚接触Linux的时候都遇到过这个问题。我们通过终端连接上服务器,通过命令行或者脚本运行了一个程序,然后关闭了终端连接,可能程序进程就消失了。我们也可能知道,在启动命令后面加&符号,可以进程在后台运行,关闭终端后,进程依然会消失,但如果通过shell脚本去运行,关闭终端连接后,程序可能不会消失。或者我们又知道可以通过nohup命令让进程在后台运行,并且关闭连接后,程序不会消失,到底为什么呢? 下面我会用比较通俗的语言进行讲解,如果有错误,欢迎指正。 2.进程关闭分析 当我们连接到服务器以后,运行的命令,启动的程序,设置的环境变量,都会挂在当前的连接中(非特殊设置或者特殊命令),当连接关闭时,所有东西都会消失。 进程的关闭,是通过信号进行传递的。我们通过 kill 命令发送不同的信号,去关闭指定的进程, 当我们关闭终端连接时,会向当前终端连接的下游进程发送 SIGHUP 信号(就是 kill -1 ),触发进程关闭动作。

Linux进程详解

眉间皱痕 提交于 2019-12-14 03:38:51
查看进程的命令如下: ps命令——查看静态的进程统计信息(一般结合选项使用 ps aux 或 ps -elf 命令) 建议使用 ps -elf 查询,输出的信息更详细些,包括 PPID (对应的父进程 的PID 号) 以上输出信息中,第一行为列表标题,其中各字段的含义描述如下。 USER:启动该进程的用户账号名称; PID:该进程在系统中的数字 ID 号,在当前系统中是唯一的; %CPU:CPU占用的百分比; %MEM:内存占用的百分比; VSZ:占用虚拟内存(swap 空间)的大小; RSS:占用常驻内存(物理内存)的大小; TTY:表明该进程在哪个终端上运行。“ ?” 表示未知或不需要终端; STAT:显示进程当前的状态,S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程); START:启动该进程的时间; TIME:该进程占用的CPU时间; COMMAND:启动该进程的命令的名称; top 命令——查看进程动态信息(以全屏交互式的界面显示进程排名,及时跟踪系统资源占用情况) 上述输出信息中,开头的部分显示了系统任务、CPU占用、内存占用等信息,相关信息的含义如下: 系统任务(Task)信息 :total ,总进程数; running,正在运行的进程数;sleeping,休眠的进程数;stopped,中止的进程数;zombie

玩坏Docker(六)笔记:RUN vs CMD vs ENTRYPOINT

筅森魡賤 提交于 2019-12-13 01:10:06
RUN、CMD 和 ENTRYPOINT 这三个 Dockerfile 指令看上去很类似,很容易混淆。本节将通过实践详细讨论它们的区别。 简单的说: RUN 执行命令并创建新的镜像层,RUN 经常用于安装软件包。 CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 后面跟的命令行参数替换。 ENTRYPOINT 配置容器启动时运行的命令。 下面我们详细分析。 Shell 和 Exec 格式 我们可用两种方式指定 RUN、CMD 和 ENTRYPOINT 要运行的命令:Shell 格式和 Exec 格式,二者在使用上有细微的区别。 Shell 格式 例如: RUN apt-get install python3 CMD echo “Hello world” ENTRYPOINT echo “Hello world” 当指令执行时,shell 格式底层会调用 /bin/sh -c 。 例如下面的 Dockerfile 片段: ENV name Cloud Man ENTRYPOINT echo “Hello, $name” 执行 docker run 将输出: Hello, Cloud Man 注意环境变量 name 已经被值 Cloud Man 替换。 下面来看 Exec 格式。 Exec 格式 [“executable”, “param1”,

Linux top命令的用法详细详解

孤者浪人 提交于 2019-12-12 19:19:30
Linux top命令的用法详细详解 首先介绍top中一些字段的含义: VIRT:virtual memory usage 虚拟内存 1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 RES:resident memory usage 常驻内存 1、进程当前使用的内存大小,但不包括swap out 2、包含其他进程的共享 3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反 4、关于库占用内存的情况,它只统计加载的库文件所占内存大小 SHR:shared memory 共享内存 1、除了自身进程的共享内存,也包括其他进程的共享内存 2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小 3、计算某个进程所占的物理内存大小公式:RES – SHR 4、swap out后,它将会降下来 DATA 1、数据占用的内存。如果top没有显示,按f键可以显示出来。 2、真正的该程序要求的数据空间,是真正在运行中要使用的。 top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下: s – 改变画面更新频率 l – 关闭或开启第一部分第一行 top 信息的表示 t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus

Dockerfile常用指令

大城市里の小女人 提交于 2019-12-12 17:04:17
Dockerfile常用指令 1.FROM:构建镜像基于哪个镜像 语法:FROM <image>[:<tag>] 例如:FROM centos:7 解释:设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上下载。 2.MAINTAINER:镜像维护者姓名或邮箱地址 语法:MAINTAINER <name> 例如:MAINTAINER adam 解释:MAINTAINER指令允许你给将要制作的镜像设置作者信息 3.RUN:构建镜像时运行的shell命令 语法: ①RUN <command> #将会调用/bin/sh -c <command> ②RUN ["executable", "param1", "param2"] #将会调用exec执行,以避免有些时候shell方式执行时的传递参数问题,而且有些基础镜像可能不包含/bin/sh 例如: RUN [“yum”,”install”,”httpd”] RUN yum -y install httpd 解释:RUN指令会在一个新的容器中执行任何命令,然后把执行后的改变提交到当前镜像,提交后的镜像会被用于Dockerfile中定义的下一步操作,RUN中定义的命令会按顺序执行并提交,这正是Docker廉价的提交和可以基于镜像的任何一个历史点创建容器的好处

Java 命令运行 class 文件,报“找不到或无法加载主类”错误

末鹿安然 提交于 2019-12-12 14:57:58
在使用命令行进行java程序的编译和运行时,报“ 找不到或无法加载主类”的错误。 首先,在ide中是可以正常编译和运行的。查找了部分的解决方案,很多人提供的思路是环境变量设置有误,但检查 环境变量等均无问题,在参阅了文章: http://www.cnblogs.com/wangxiaoha/p/6293340.html 之后,发现产生错误的原因是对package,类路径以及java编译器及虚拟机查找文件的模式不理解,以至命令行输入混乱。进而查阅书籍,在《Java核心技术卷1》中对Windows系统下使用命令行运行java程序,类路径以及包之间的关系有较为详细的阐述,总体来说有一下几点需要注意。 1.编译器在编译源文件的时候不检查目录结构。但是如果包和目录不匹配,虚拟机就找不到类。 所以在出现问题后,发现编译总能通过,但是运行时会报错。 2.编译器对文件进行操作,而java解释器加载类 eg:javac com/mycompany/PayrollApp.java   java com.mycompany.PayrollApp Oracle官方也提出了初学者易犯的错误就包括使用java xx.class的形式运行程序 A common mistake made by beginner programmers is to try and run the java launcher on