Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
构建镜像命令格式:
1$ docker build [选项] <上下文路径/URL/->
示例:
12## 构建一个名为 nginx:v3 的镜像$ docker build -t nginx:v3 .
RUN 执行命令
shell格式:RUN <命令>,就像直接在命令行中输入的命令一样。刚才写的 Dockrfile 中的 RUN 指令就是这种格式。
1RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
exec格式:RUN [“可执行文件”, “参数1”, “参数2”],这更像是函数调用中的格式。
COPY 复制文件格式:
COPY <源路径>... <目标路径>
COPY ["<源路径1>",... ...
WhatDocker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
因为镜像包含操作系统完整的 root 文件系统,其体积往往是庞大的,因此在 Docker 设计时,就充分利用 Union FS 的技术,将其设计为分层存储的架构。所以严格来说,镜像并非是像一个 ISO 那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。
安装12345678## 官方 的安装脚本$ curl -sSL https://get.docker.com/ | sh## 阿里云 的安装脚本$ curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -## DaoCloud 的安装脚本$ curl -sSL https://get.daocloud.i ...
安装笔者环境操作系统:deepin 15.4 Desktop 64Bit
安装12345678## 官方 的安装脚本$ curl -sSL https://get.docker.com/ | sh## 阿里云 的安装脚本$ curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -## DaoCloud 的安装脚本$ curl -sSL https://get.daocloud.io/docker | sh
获取镜像Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像并运行。从 Docker Registry 获取镜像的命令是 docker pull。其命令格式为:
1$ docker pull [选项] [Docker Registry地址]<仓库名>:<标签>
具体的选项可以通过 docker pull --help 命令看到,这里我们说一下镜像名称的格式。
Docker Registry地址: ...
summary
系统环境: Red Hat 4.8.5-11
情况:
home:500G
root:50G
root分区不够用
思路:把home分区的空间划一部分到root分区
12345678## 设置home分区大小为200G,释放300G空间$ lvreduce -L 200G /dev/centos/home## 将空闲空间扩展到root分区$ lvextend -l +100%FREE /dev/centos/root## 使用XFS文件系统自带的命令集增加分区空间$ xfs_growfs /dev/mapper/centos-root
实例situation挂载在根目录的分区 /dev/mapper/centos-root 爆满,占用100%
12345678910$ df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/centos-root 50G 50G 19M 100% /devtmpfs 32G 0 32 ...
原因由于zip格式并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。
解决方案使用7z解压。
安装p7zip和convmv
1234## fedora$ su -c 'yum install p7zip convmv'## ubuntu$ sudo apt-get install p7zip convmv
执行一下命令解压缩
1234## 使用7z解压缩$ LANG=C 7za x your-zip-file.zip## 递归转码$ convmv -f GBK -t utf8 --notest -r .
去年上半年开始全面使用linux进行开发和娱乐了,现在已经回不去windows了。
话归正传,在linux上一直使用vim,慢慢熟悉了它的命令,才终于领悟了什么是编辑器之神。
最近抽空整理了这份速查表,收获颇丰,并分享给大家。
进入vim
命令
描述
vim filename
打开或新建文件,并将光标置于第一行首
vim +n filename
打开文件,并将光标置于第n行首
vim + filename
打开文件,并将光标置于最后一行首
vim +/pattern filename
打开文件,并将光标置于第一个与pattern匹配的串处
vim -r filename
在上次正用vim编辑时发生系统崩溃,恢复filename
vim filename….filename
打开多个文件,依次编辑
vim配置
命令
描述
all
列出所有选项设置情况
term
设置终端类型
ignorance
在搜索中忽略大小写
list
显示制表位(Ctrl+I)和行尾标志($)
number
显示行号
report
显示由 ...
什么是 FTPFTP 是文件传输协议File Transfer Protocol的缩写。顾名思义,FTP用于计算机之间通过网络进行文件传输。你可以通过FTP在计算机账户间进行文件传输,也可以在账户和桌面计算机之间传输文件,或者访问在线软件归档。但是,需要注意的是多数的FTP站点的使用率非常高,可能需要多次重连才能连接上。
FTP地址和HTTP地址(即网页地址)非常相似,只是FTP地址使用 ftp://前缀而不是http://
FTP 服务器是什么通常,拥有FTP地址的计算机是专用于接收FTP连接请求的。一台专用于接收FTP连接请求的计算机即为FTP服务器或者FTP站点。
现在,我们来开始一个特别的冒险,我们将会搭建一个FTP服务用于和家人、朋友进行文件共享。在本教程,我们将以vsftpd作为ftp服务。
VSFTPD是一个自称为最安全的FTP服务端软件。事实上VSFTPD的前两个字母表示“非常安全的very secure”。该软件的构建绕开了FTP协议的漏洞。
尽管如此,你应该知道还有更安全的方法进行文件管理和传输,如:SFTP(使用OpenSSH)。FTP协议对于共享非敏感数据是 ...
sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似。 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作。
它可以配置使用几个有用的 SSH 功能,如公钥认证和压缩。 它连接并登录到指定的远程机器,然后切换到交互式命令模式,在该模式下用户可以执行各种命令。
在本文中,我们将向你展示如何使用 sFTP 上传/下载整个目录(包括其子目录和子文件)。
How to use默认情况下,SFTP 协议采用和 SSH 传输协议一样的方式建立到远程服务器的安全连接。虽然,用户验证使用类似于 SSH 默认设置的密码方式,但是,建议创建和使用 SSH 无密码登录,以简化和更安全地连接到远程主机。
要连接到远程 sftp 服务器,如下建立一个安全 SSH 连接并创建 SFTP 会话:
1$ sftp root@server
登录到远程主机后,你可以如下运行交互式的 sFTP 命令:
12345678sftp> ls #列出服务器文件列表sftp> lls #列出本地文件 ...
tailf 一个实时监听文件或日志的强大的命令
命令格式1$ tailf [option] file
命令描述 tailf 将会打印出一个文件的最后10行,等待并持续输出此文件的增长,它和tail -f相似,不同之处是当文件没有增长时,是不访问此文件的;但这会有一个副作用:不会更新文件的访问时间。当没有发生日志活动时,文件系统的冲洗(flush)不会定期发生。 tailf 对于打印日志不频繁,而又在使用笔记本电脑时是非常有用的,这样用户就能降低磁盘转速从而增加笔记本续航。
命令参数
参数
描述
-n,–lines=N,-N
输出最后N行,而不是默认的最后10行
命令实例例一:展示一个文件的最后5行并监听文件的新行(新增加的内容)
123$ tailf -n 5 myfile.txt$ tailf -5 myfile.txt$ tailf --lines=5 myfile.txt
注:这是一个实时监听文件或日志的强大的命令
例二:实时新增日志内容,并通过管道过滤出自己想要的内容
12## 实时监听ip地址为24.10.160.10的访问日志$ tai ...
前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。
crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
/etc/crontab文件包括下面几行:
1234567891011121314## /et ...
