运行命令

Docker学习笔记三 入门

谁都会走 提交于 2020-03-01 19:40:56
3.1 验证Docker正常启动 使用docker info 命令,返回所有容器和镜像的数量、docker版本、使用的执行驱动和存储驱动以及Docker的基本配置等。之前说过Docker是基于client-server架构,它有一个docker程序,既能做客户端又能做服务器端。作为客户端时,docker程序向Docker守护进程发送请求,然后再对返回的请求结果进行处理。 3.2 运行第一个容器 可使用docker run 命令创建容器。它提供了容器的创建到启动功能。运行 docker run -i -t ubuntu /bin/bash 参数 -i 保证容器中STDIN是开启的; 参数-t告诉Docker为要创建的容器分配一个伪tty终端。这样新建的容器才能提供一个交互式shell; 接下来告诉Docker基于什么镜像来创建容器,上例使用的是ubuntu镜像,它是一个基础镜像,由Docker公司提供,保存在Docker Hub Registry上。 最后告诉Docker在新容器中要运行什么命令,本例中在容器中运行/bin/bash命令启动了一个Bash shell。 运行命令后Docker会检查本地是否存在ubuntu镜像,如果没有就会连接Docker Hub Registry查看是否有该镜像,一旦找到就会下载并保存到本地宿主机中。

docker详细的基础用法

心已入冬 提交于 2020-03-01 07:04:34
Docker 是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Appli cat ion Container)。(我个人还是喜欢称虚拟机) Docker应用容器相对于 VM 有以下几个优点: 启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久 资源利用率高,一台普通PC 可以跑上千个容器,你跑上千个 VM 试试 性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源 因为VM的Hypervisor需要实现对硬件的虚拟化,并且还要搭载自己的操作系统,自然在启动速度和资源利用率以及性能上有比较大的开销。 个人体会较深的两处优点: 快速部署,传统的部署模式是:安装(包管理工具或者源码包编译)->配置->运行;Docker的部署模式是:复制->运行。 可以保证线上与测试环境一致,计划以后上线就直接复制测试使用的docker容器 什么是docker? http://oilbeater.com/docker/2014/06/29/what-is-docker.html 为什么你应该关注docker? http://oilbeater.com/docker/2014/06/13/why-you-should-care-about-docker.html 1、docker安装

转:docker详细的基础用法

瘦欲@ 提交于 2020-03-01 06:19:42
Docker 是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Appli cat ion Container)。(我个人还是喜欢称虚拟机) Docker应用容器相对于 VM 有以下几个优点: 启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久 资源利用率高,一台普通PC 可以跑上千个容器,你跑上千个 VM 试试 性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源 因为VM的Hypervisor需要实现对硬件的虚拟化,并且还要搭载自己的操作系统,自然在启动速度和资源利用率以及性能上有比较大的开销。 个人体会较深的两处优点: 快速部署,传统的部署模式是:安装(包管理工具或者源码包编译)->配置->运行;Docker的部署模式是:复制->运行。 可以保证线上与测试环境一致,计划以后上线就直接复制测试使用的docker容器 什么是docker? http://oilbeater.com/docker/2014/06/29/what-is-docker.html 为什么你应该关注docker? http://oilbeater.com/docker/2014/06/13/why-you-should-care-about-docker.html 1、docker安装

docker详细的基础用法(转)

a 夏天 提交于 2020-03-01 00:22:49
1、docker安装 debian7安装docker 参考地址:http://www.webmaster.me/server/installing-docker-on-debian- wheezy-in-60-seconds.html echo deb http://get.docker.io/ubuntu docker main | sudo tee/etc/apt/sources.list.d/docker.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 sudo apt-get update sudo apt-get install -y lxc-docker #四行命令,Docker就安装好了。下面创建一个ubuntu虚拟系统: docker pull ubuntu #此处是从官网拉取名为ubuntu的image,也可手动在 https://index.docker.io上搜索想要的镜像。 docker run -i -t ubuntu /bin/bash #创建一个容器,-t是临时终端。 ubuntu12.04、windows、macOS安装docker 参考docker中文文档http://www

LINUX总结第13篇:LINUX下动态库及版本号控制

亡梦爱人 提交于 2020-02-29 16:32:54
前言 针对同一动态组件的不同版本链接和加载。 一、概念 DLL HELL字面意思是DLL"灾难",是由于com组件(动态库)升级引起的程序不能运行的情况。 原因 有三种可能的原因导致了DLL Hell的发生: 一是由使用旧版本的DLL替代原来一个新版本的DLL而引起的。这个原因最普遍,是Windows 9X用户通常遇到的DLL错误之一。 二是由新版DLL中的函数无意发生改变而引起。尽管在设计DLL时候应该向下兼容,然而要保证DLL完全向下兼容却是不能的。 三是由新版DLL的安装引入一个新的Bug。 二、linux下的解决方案——命名规范 Linux 上的Dll ,叫sharedlibrary。Linux 系统面临和Window一样的问题,如何控制动态库的多个版本问题。为解决这个问题,Linux 为解决这个问题,引入了一套命名机制,如果遵守这个机制来做,就可以避免这个问题。但是这只事一个约定,不是强制的。但是建议遵守这个约定,否则同样也会出现 Linux 版的Dll hell 问题。 Real Name 首先是共享库本身的文件名:共享库的命名必须如 libname.so.x.y.z最前面使用前缀”lib”,中间是库的名字和后缀”.so”,最后三个数字是版本号。x是主版本号(Major Version Number),y是次版本号(Minor Version Number)

在shell的一行中运行多个命令

自古美人都是妖i 提交于 2020-02-29 16:29:50
说我有一个文件 /templates/apple 并且我想要 放在两个不同的地方,然后 删除原件。 因此, /templates/apple 将被复制到 /templates/used 和 /templates/inuse ,然后在此之后,我想删除原始文件。 cp 是执行此操作的最佳方法,其次是 rm 吗? 或者,还有更好的方法? 我想一行完成所有操作,所以我认为它看起来像: cp /templates/apple /templates/used | cp /templates/apple /templates/inuse | rm /templates/apple 这是正确的语法吗? #1楼 另一个选项是在每个命令的末尾键入Ctrl + V Ctrl + J。 示例(用Ctrl + V Ctrl + J替换 # ): $ echo 1# echo 2# echo 3 输出: 1 2 3 无论先前的命令是否失败,这将执行命令。 与: echo 1; echo 2; echo 3 echo 1; echo 2; echo 3 如果要停止执行失败的命令,请在每行的末尾添加 && ,最后一行除外。 示例(用Ctrl + V Ctrl + J替换 # ): $ echo 1 &&# failed-command &&# echo 2 输出: 1 failed-command:

xcode lldb gdb调试

拥有回忆 提交于 2020-02-29 08:12:50
应用调试: 1 xcode gdb/lldb调试命令 命令 解释 break NUM 在指定的行上设置断点。 bt 显示所有的调用栈帧。该命令可用来显示函数的调用顺序。 clear 删除设置在特定源文件、特定行上的断点。其用法为:clear FILENAME:NUM。 continue 继续执行正在调试的程序。该命令用在程序由于处理信号或断点而导致停止运行时。 display EXPR 每次程序停止后显示表达式的值。表达式由程序定义的变量组成。 file FILE 装载指定的可执行文件进行调试。 help NAME 显示指定命令的帮助信息。 info break 显示当前断点清单,包括到达断点处的次数等。 info files 显示被调试文件的详细信息。 info func 显示所有的函数名称。 info local 显示当函数中的局部变量信息。 info prog 显示被调试程序的执行状态。 info var 显示所有的全局和静态变量名称。 kill 终止正被调试的程序。 list 显示源代码段。 make 在不退出 gdb 的情况下运行 make 工具。 next 在不单步执行进入其他函数的情况下,向前执行一行源代码。 print EXPR 显示表达式 EXPR 的值。 print-object 打印一个对象 print (int) name 打印一个类型 print

Linux Setuid(SUID)和Setgid(SGID) sticky bit

泪湿孤枕 提交于 2020-02-29 02:53:15
http://www.php100.com/html/webkaifa/Linux/2010/0812/6392.html  1、setuid和setgid的解说    setuid和setgid位是让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令 。比如我们用普通用户运行passwd命令来更改自己的口令,实际上最终更改的是/etc/passwd文件,我们知道/etc/passwd文件是用户管理的配置文件,只有root权限的用户才能更改:   [root@localhost ~]# ls -l /etc/passwd   -rw-r--r-- 1 root root 2379 04-21 13:18 /etc/passwd   作为普通用户,如果修改自己的口令通过修改/etc/passwd肯定是不可完成的任务,是不是可以通过一个命令来修改呢?答案是肯定的,作为普通用户可以通过passwd 来修改自己的口令,这归功于passwd命令的权限。我们来看一下:   [root@localhost ~]# ls -l /usr/bin/passwd   -r-s--x--x 1 root root 21944 02-12 16:15 /usr/bin/passwd   因为/usr/bin/passwd 文件已经设置了setuid 权限位(也就是r-s--x-

有效用户id, 实际用户id

。_饼干妹妹 提交于 2020-02-28 21:49:24
copy from http://blog.csdn.net/jiean/archive/2009/01/02/3686207.aspx 今天在看APUE,这两个问题很难理解,GOOGLE一下,有篇文章总结的不错,看了一下才明白透彻了。 由于用户在UNIX下经常会遇到SUID、SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题。关于SUID、 SGID的问题也经常有人提问,但回答的人一般答得不够详细,加上曾经回答过两个网友的问题,还查了一些资料,决定整理成本文,以供大家参考。限于本人的水平问题,文章中如果有不当之处,请广大网友指正。 第9位表示文件类型,可以为p、d、l、s、c、b和-: p表示命名管道文件 d表示目录文件 l表示符号连接文件 -表示普通文件 s表示socket文件 c表示字符设备文件 b表示块设备文件 第8-6位、5-3位、2-0位分别表示文件所有者的权限,同组用户的权限,其他用户的权限,其形式为rwx: r表示可读,可以读出文件的内容 w表示可写,可以修改文件的内容 x表示可执行,可运行这个程序 没有权限的位置用-表示 例子: ls -l myfile显示为: -rwxr-x--- 1 foo staff 7734 Apr 05 17:07 myfile 表示文件myfile是普通文件,文件的所有者是foo用户

linux:SUID、SGID详解

a 夏天 提交于 2020-02-28 21:43:17
linux:SUID、SGID详解 文章转载至: http://tech.ccidnet.com/art/2583/20071030/1258885_1.html 如果你对SUID、SGID仍有迷惑可以好好参考一下! Copyright by kevintz. 由于用户在UNIX下经常会遇到SUID、SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题。关于SUID、SGID的问题也经常有人提问,但回答的人一般答得不够详细,加上曾经回答过两个网友的问题,还查了一些资料,决定整理成本文,以供大家参考。限于本人的水平问题,文章中如果有不当之处,请广大网友指正。 一、UNIX下关于文件权限的表示方法和解析 SUID 是 Set User ID, SGID 是 Set Group ID的意思。 UNIX下可以用ls -l 命令来看到文件的权限。用ls命令所得到的表示法的格式是类似这样的:-rwxr-xr-x 。下面解析一下格式所表示的意思。这种表示方法一共有十位: 9 8 7 6 5 4 3 2 1 0 - r w x r - x r - x 第9位表示文件类型,可以为p、d、l、s、c、b和-: p表示命名管道文件 d表示目录文件 l表示符号连接文件 -表示普通文件 s表示socket文件 c表示字符设备文件 b表示块设备文件 第8-6位、5-3位、2