docker命令易错点整理

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
确保服务出现任何问题而意外结束时,自动重新启动。

你可能感兴趣的:(docker)