美文网首页
docker-命令的整理笔记

docker-命令的整理笔记

作者: Joah_l | 来源:发表于2019-10-16 11:23 被阅读0次
    • 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: 查看容器内部发生改变的文件,

      <!-- C 对应的是文件夹, A 对应的是文件 -->
      $ 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
        <!-- 容器blog的内部端口80映射到宿主机的80端口,这样可通过宿主机的80端口查看容器blog提供的服务 -->
      
    • 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:<name|id>

    命令

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

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

    相关文章

      网友评论

          本文标题:docker-命令的整理笔记

          本文链接:https://www.haomeiwen.com/subject/jevymctx.html