docker-命令的整理笔记

  • docker attach: 将终端依附到容器上; 相当于进入到容器的 bash;

  • docker ps -a 查看容器的状态

  • docker run -it --name ubuntu ubuntu /bin/bash: 运行容器, 并执行命令: /bin/bash

  • docker stop ubuntu; 停止运行容器

  • docker start ubuntu; 重新运行容器

  • docker build: 通过 Dockerfile 创建镜像

  • docker cp: 在宿主机和容器之间相互拷贝文件:

    • docker cp [container]:[path] [dirname]

    • docker cp [dirname] [container]:[path]

    • docker cp ubuntu:/usr/local/bin/test.sh / :

    容器 ubuntu 中 /usr/local/bin/test.sh 拷贝到 / 上;

  • docker create: 创建一个新的容器; 此时的容器的状态 status 为 Created

  • docker diff: 查看容器内部发生改变的文件,

    
    $ docker diff ubuntu
      C /root
      A /root/.bash_history
    
  • docker events: 实时输出 Docker 服务端的事件, 比如: 容器的创建, 启动, 关闭

    $ docker events
      2019-10-15T15:46:57.996904034+08:00 network connect  0438641bf7117fbafd5a10fa869bafcdcd88c5a15198a9dd60685f9c45b6cd0a (container=f160c880996717e99a98d668a54ea25b33e0fc77fcf170684f4749c34f481123, name=bridge, type=bridge)
    
      2019-10-15T15:46:58.642726243+08:00 container start f160c880996717e99a98d668a54ea25b33e0fc77fcf170684f4749c34f481123 (image=ubuntu:16.04, name=ubuntu)
    
  • docker exec: 用于容器启动之后, 执行其他的任务

    • 通过 exec 命令可以创建两种任务: 后台任务和交互型任务

    • 后台型: docker exec -d ubuntu touch 123

    • 交互型: docker exec -it ubuntu /bin/bash: 进入到容器的 bash

  • docker export: 将容器的文件系统打包成 tar 文件;

    • docker export -o ubuntu.tar ubuntu

    • docker export ubuntu > ubuntu.tar

  • docker history: 显示镜像制作的过程; 相当于dockfile

  • docker import: 根据 tar 文件的内容新建一个镜像, 与之前的 export 命令相对应

    • docker import ubuntu.tar ubuntu:1.0.0
  • docker info: 查看 docker 的系统信息

  • docker inspect: 用于查看容器的配置信息, 包含容器名, 环境变量, 运行命令, 主机配置, 网络配置和数据卷的配置

  • docker kill: 强制终止容器,

    • 关于 stopkill 的区别,

      • docker stop 命令给容器中的进程发送 SIGTERM 信号, 默认行为是会导致容器退出, 程序内部可以捕获这个信号并自行处理, 不一定会退出;

      • docker kill 命令, 则是给容器发送 SIGKILL 信号, 这个信号会给容器必然退出;

  • docker load: 与下面的 save 命令相对应, 将下面 save 命令打包的镜像通过 load 命令导入

  • docker logs : 用于查看容器日志, 将输出到标准输出的数据作为日志输出到 docker logs 命令的终端上, 常用于后台型容器

  • docker pause: 暂停容器内的所有的进程

    • docker stats: 可以观察到此时的资源使用情况是固定不变的;

    • docker logs -f: 也可以看到没有任何的 log 日志输出

  • docker port - 输出容器端口宿主机端口映射的情况

    [root@localhost ~]# docker port blog
      80/tcp -> 0.0.0.0:80
      
    
  • docker ps: 查看正在运行的容器, -a 查看所有的容器

  • docker pull: 从docker hub 上拉取镜像

  • docker rename: 更改容器的名字

  • docker restart: 重启容器

  • docker rm ubuntu; 删除容器;

    • docker rm -f ubuntu; 强制删除

    • docker rm -f docker ps -aq, -q: 只列出容器 ID

  • docker rmi: 删除镜像

  • docker run: 让创建的容器立即进入到运行的状态, 该命令等于 docker create 创建容器之后, 再使用 docker start 启动容器

  • docker stats: 动态显示容器的资源消耗i情况: cpu, 内存, 网络I/O

  • docker tag; 对一个镜像进行重命名

  • docker top: 查看容器中正在运行的进程

  • docker unpause: 恢复容器内暂停的进程, 与 pause 参数相对应

  • docker wait: 捕获容器停止时的退出码

docker run 的参数

  • -e/--env=[] 设置环境变量

  • --env-file=[] 读取一个包含了环境变量的文件

  • -h/--hostname 容器的主机名

  • --link=[] 添加一个到另一个容器的连接

  • --name 容器的名字

  • --net-bridge 为容器设置网络模式

  • -p 容器端口映射 eg: 8080:80

  • --privileged=false 为容器扩展权限

当 docker run 命令时, Docker 会启动一个进程, 并为这个进程分配其独占的文件系统, 网络资源和以此进程为根进程的进程组, docker run 可以覆盖 docker build 镜像时的一些默认的配置,

docker run [options] image_name [command] [args...]

  • [options] 总结起来就两类;
* 设置运行方式, 决定容器运行方式, 前台还是后台, 设置 containerID; 设置网络参数, 设置容器的 CPU 和内存参数, 设置权限和LXC参数,

* 设置镜像的默认资源, 用户可以使用该命令来覆盖构建时的一些默认配置

容器的网络模式:

  • none: 关闭容器内的网络连接, 那么这个容器将不允许访问任何外部 router. 这个容器内部只会有一个 loopback 的接口, 而且不存在任何可以外部网络的 router;

  • Bridge: 默认设置为 bridge 模式, 此时主机会存一个 docker0 的网络接口, 同时会针对容器创建一对 veth 接口, 其中一个 veth 接口是在主机充当网卡桥接作用, 另一个 veth 接口存在容器的命名空间中, 并且指向容器的 loopback; docker 会自动给这个容器分配一个ip; 并且将容器内的数据通过桥接转发到外部

  • host: 这个容器将完全共享 host 的网络堆栈, host 所有的网络接口将完全对容器开发, 容器的主机名也会存在于主机的 hostname 中,这时, 容器所有对外暴露的端口和对其他容器的连接, 将完全无效

  • Container: 这个容器将完全服用另外一个容器的网络堆栈, 同时使用这个容器的名称必须要符合下面的格式:

    • --net container:

命令

  • docker run -it --name ubuntu -d -link redis:redis-db ubuntu:16.04

    • 容器连接到 redis 容器, 将 redis 容器重名为 redis-db, 这样 ubuntu 容器可以使用 db 的相关的环境变量
  • docker build -t

你可能感兴趣的:(docker-命令的整理笔记)