pause
docker pause可以暂时停止容器,以释放一部分CPU出来给其他服务使用
docker unpause可以解冻
docker stop vs kill
stop会首先尝试正常结束容器(发送SIGTERM信号给容器中的程序),如果程序没有响应的话,则强制结束容器(发送SIGKILL信号);
kill则会直接强制结束容器
参数简写
-d
–detach,即后台运行-i
–interactive,让容器以交互式模式运行-t
–tty,即为容器分配一个TTY终端-p
–publish,即将容器中指定的端口暴露到外部主机,默认是tcp端口
数据卷备份
docker run --rm --volumes-from vol --v ${pwd}:/backup ubuntu tar zcvf /backup/data.tar.gz /data
加–rm表示结束时删除容器,加上–volumes-from 则表示顺便删除数据卷
当然如果数据卷被其他正在运行的容器使用,则不会被删除
在容器上制作镜像
必须exit出来,然后再执行docker commit,否则修改不会带到新镜像
Dockerfile指令
构建指令
FROM
MAINTAINER
RUN
指定shell命令ADD
拷贝后权限变为0755,如果是可识别的压缩格式,会自动解压,可以是远程文件的url。
拷贝目录的话,是拷贝目录里头的文件,不包括目录本身
COPY
原样拷贝,不支持远程文件url
设置指令
CMD
只能存在一个,多个的话,执行最后的那一个。对于指定的参数,可以被run的时候传递的参数覆盖ENTRYPOINT
不会被run指定的参数覆盖USER
指定运行容器时的用户名,默认是root账户EXPOSE
与–publish-all即-P配置使用,将dockerfile的所有暴露的端口,映射到主机的同样的端口号ENV
VOLUME
与–volume类似,挂载数据卷WORKDIR
设置工作目录,如果设置多次,而且是相对路径,则每次都是相对之前的来。LABEL
设置镜像的元属性ONBUILD
指定被其他镜像作为基础镜像时运行的操作指令
run 指定env
–env VAR_NAME=VAR_VALUE
restart
–restart always
确保服务出现任何问题而意外结束时,自动重新启动。