docker容器常用操作

查看本机上存在的所有容器
docker ps -a
查看运行的容器 不截断
docker ps --no-trunc
创建容器
docker create -it xx:xx (新建的容器处于停止状态)
启动容器
docker start xxx(id或者名字)
新建并启动容器
docker run ubuntu(镜像名字)
重启容器
docker restart xxx(id或者名字)
创建并进入容器
docker run -it nginx(镜像名字) /bin/bash
退出容器
ctrl+d 或 exit 退出出错错误码:
·125:Docker daemon执行出错,例如指定了不支持的Docker命令参数;
·126:所指定命令无法执行,例如权限出错;
·127:容器内命令无法找到。
让Docker容器在后台以守护态(Daemonized)形式运行
docker run -d ubuntu(镜像名字)
暂停容器
docker pause nginx
暂停容器恢复运行
docker unpause nginx
终止容器
docker stop idxxxxxx
docker kill(强行终止容器)

当Docker容器中指定的应用终结时,容器也会自动终止
自动清除所有停止状态的容器
docker container prune
获取容器的输出信息
docker logs idxxxxxx
    .--details显示更多的信息
    .-f, --follow跟踪实时日志
    .--since string显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
    .--tail string从日志末尾显示多少行日志, 默认是all
    .-t, --timestamps显示时间戳
    .--until string显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
进入容器
1 docker attach
    ·--detach-keys[=[]]:指定退出attach模式的快捷键序列,默认是CTRL-p CTRL-q;
    ·--no-stdin=true|false:是否关闭标准输入,默认是保持打开;
    ·--sig-proxy=true|false:是否代理收到的系统信号给应用进程,默认为true。
当多个窗口同时用attach命令连到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作

2 docker container exec -it idxxx /bin/bash
3 docker exec -it idxxx /bin/bash
     .--detach, -d后台运行模式,在后台执行命令相关命令
     .--detach-keys覆盖容器后台运行的一些参数信息
     .--env, -e设置环境变量
     .-i,--interactive展示容器输入信息STDIN
     .--privileged为命令提供一些扩展权限
     .--tty, -t命令行交互模式
     .--user, -u设置用户名(format: <name|uid>[:<group|gid>])
     .--workdir, -w指定容器内的目录
删除容器
docker -rm (只能删除处于终止或退出状态的容器,并不能删除还处于运行状态的容器 ,-f删除运行中的程序)
    ·-f,--force=false    是否强行终止并删除一个运行中的容器;
    ·-l,--link=false    删除容器的连接,但保留容器;
    ·-v,--volumes=false    删除容器挂载的数据卷。
导入容器
docker import test_for_run.tar - test/ubuntu:v1.0
    .-c 导入的同时执行对容器的修改的Dockerfile
    导入的容器是新的镜像 不是容器状态
导出容器
docker export -o test_for_run.tar ce5
查看容器详情
docker container inspect nginx
 #返回json的id time 路径 状态 镜像 配置…

查看容器内的进程
docker top nginx

查看统计信息
docker stats sad_wu
#cpu 存储 网络…

主机和容器之间复制文件
docker cp
     .-a打包模式 复制文件会带有原始的uid gid信息
     .-L跟随软链接,可复制软链接的目标内容

主机到容器
docker cp /c sad_wu:/ 
#复制本地/c 到容器/

容器到主机
docker cp sad_wu:/a.txt ./
#复制容器内的/a.txt 到主机
查看容器内文件系统变更
docker container diff xxx
查看端口映射
docker container port xxx
更新配置
docker update … nginx
  .--blkio-weight uint16
  .--cpu-period int
  .--cpu-quota int
  .--cpu-rt-period int
  .--cpu-rt-runtime intcpu使用份额
  .-c, --cpu-shares int
  .--cpus decimalcpu个数
  .--cpuset-cpus string
  .--cpuset-mems string
  .--kernel-memory bytes
  .-m, --memory bytes内存
  .--memory-reservation bytes
  .--memory-swap bytes
  .--pids-limit int
  .--restart string
已存在的容器 设置自启动
docker update --restart=always 容器Id 或 name

容器操作便捷脚本

启动所有的容器命令
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
关闭所有的容器命令
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
删除所有的镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)
删除所有的容器命令
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
删除停止的容器
docker rm $(docker container ls -f "status=exited" -q)
删除所有容器
docker rm $(docker container ls -aq)
删除所有创建状态的容器
docker rm $(docker container ls -f "status=created" -q)