• Docker系列二: docker常用命令总结


    https://docs.docker.com/reference/  官方命令总结地址

    容器生命周期管理

    1.docker run

    创建一个新的容器并运行一个命令

    docker run [options] image [command] [arg...]
    
    -a stdin:指定标准输入输出内容类型,可选STDIN/STDOUT/STDERR
    
    -d: 后台运行容器,并返回容器ID
    
    -i: 以交互式运行容器,通常与-t同时使用
    
    -p: 端口映射,格式为 主机(宿主)端口:容器端口
    
    -t: 为容器重新分配一个伪输入终端,通常与-i同时使用
    
    --name="name": 为容器指定一个名称
    
    --dns 8.8.8.8: 为容器指定一个dns服务器,默认与宿主一致
    
    --dns-search domain:为容器指定一个DNS域名,默认与宿主一致
    
    -h "hostname": 指定容器的hostname
    
    -e arg="value": 设置环境变量
    
    -env-file=[]:从指定文件读入环境变量
    
    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定的cpu运行
    
    -m: 设置容器使用内存最大值
    
    --net="bridge": 指定容器的网络连接类型,支持bridge/host/none/container四种类型
    
    --link=[]:添加链接到另外一个容器
    
    --expose=[]:开放一个端口或一组端口,宿主机使用随机端口映射到开放的端口
    
    #实例
    docker run --name mynginx -d nginx:latest
    
    # 映射多个端口
    docker run -p 80:80/tcp -p 90:90 -v /data:/data -d nginx:latest
    
    docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
    
    docker run -it nginx:latest /bin/bash
     
    2.start/stop/restart命令

    启动/关闭/重启容器

    docker start/stop/restart [options] container [container...]
     
    3.kill命令

    杀掉一个运行中的容器

    -s:向容器发送一个信号
    
    docker kill -s KILL mynginx
     
    4.rm命令

    删除一个或多个容器

    -f:通过SIGKILL信号强制删除一个运行中的容器
    -l:移除容器间的网络连接,而非容器本身
    -v:-v删除与容器关联的卷
    
    docker rm -f db01 db02
    docker rm -l db
    docker rm -v nginx01
     
    5.pause/unpause命令

    pause暂停,unpause恢复

    docker pause [OPTIONS] CONTAINER [CONTAINER...]
    docker unpause [OPTIONS] CONTAINER [CONTAINER...]
     
    6.create命令

    创建一个容器,但不启动它(用法类似docker run)

    docker create --name mynginx nginx:latest
     
    7.exec命令

    docker exec:在运行的容器中执行命令

    -d:分离模式:在后台运行
    -i:及时没有附加也保持STDIN打开
    -t:分配一个伪终端
    
    docker exec -it mynginx /bin/bash /root/secript.sh
    
    docker exec -i -t mynginx /bin/bash          # 使用该命令可以分配一个伪终端执行命令, 使用exit推出时,docker容器不会自动关闭

    容器操作

    1.PS

    列出容器

    -a: 显示所有容器,包括未运行的
    -f: 根据条件过滤显示的内容
    --format: 指定返回值的模板文件
    -l: 显示最近创建的容器
    -n: 列出最近创建的n个容器
    --no-trunc: 不截断输出
    -q: 静默模式,值显示容器编号
    -s: 显示总文件大小
    
    docker ps
    docker ps -n 5
    docker ps -a -q
     
    2.inspect

    获取容器/镜像的元数据

    -f: 指定返回值的模板
    -s: 显示总的文件大小
    --type: 为指定类型返回JSON
    
    docker inspect mysql:5.6
    
    docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
     
    3.top

    查看容器中运行的进行信息,支持ps命令参数

    docker top [options] container [ps options]
    
    docker top mymysql
     
    4.attach

    连接到运行中的容器

    docker attach [options] container
    
    # --sig-proxy=false 加上参数容器还是会退出(通过ctrl+D退出容器)
    docker attach --sig-proxy=false mynginx
     
    5.events

    从服务器获取实时时间(监听)

    -f: 根据条件过滤事件
    --since:从指定的时间戳后显示所有事件
    --until:流水时间显示到指定的时间为止
    如果不加任何参数,监听当前事件
    
    docker events
     
    6.logs

    获取容器的日志(容器中输出到STDOUT,STDERR中的日志)

    -f: 跟踪日志输出
    --since: 显示某个时间开始的所有日志
    -t: 显示时间戳
    --tail: 仅列出最新n条容器日志
    
    docker logs -f mynginx
     
    7.wait

    阻塞运行直到容器停止,然后打印它的退出代码

    docker wait container
     
    8.export

    将容器的文件系统作为一个tar归档文件导出到stdout

    docker export -o mysql-`data +%Y%m%d`.tar a404c6c174a2
     
    9.port

    列出指定的容器的端口映射或者查找将PRIVATE_PORT NAT到面向公众的端口

    docker port mysql
     
    10.update

    更新容器的一些配置(内存,cpu,是否自动启动), 修改内存时,虚拟机必须是关机状态,否则报错 未知参数

    root@bogon:~# docker update --help
    
    Usage:  docker update [OPTIONS] CONTAINER [CONTAINER...]
    
    Update configuration of one or more containers
    
    Options:
          --blkio-weight uint16        Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
          --cpu-period int             Limit CPU CFS (Completely Fair Scheduler) period
          --cpu-quota int              Limit CPU CFS (Completely Fair Scheduler) quota
          --cpu-rt-period int          Limit the CPU real-time period in microseconds
          --cpu-rt-runtime int         Limit the CPU real-time runtime in microseconds
      -c, --cpu-shares int             CPU shares (relative weight)
          --cpus decimal               Number of CPUs
          --cpuset-cpus string         CPUs in which to allow execution (0-3, 0,1)
          --cpuset-mems string         MEMs in which to allow execution (0-3, 0,1)
          --kernel-memory bytes        Kernel memory limit
      -m, --memory bytes               Memory limit
          --memory-reservation bytes   Memory soft limit
          --memory-swap bytes          Swap limit equal to memory plus swap: '-1' to enable unlimited swap
          --restart string             Restart policy to apply when a container exits
    
    
    root@bogon:~#  docker update --memory-swap 10240000 -m 10240000 portainer

    容器rootfs命令

    1.commit

    从容器创建一个新的镜像

    -a: 提交的镜像作者
    -c: 使用dockerfile指令来创建镜像
    -m: 提交时的说明文字
    -p: 在提交时,将容器暂停
    
    docker commit -a "runoob.com" -m "my apache" a404c6c174a2   myapache:v1
     
    2.cp

    用于容器和主机之间的数据拷贝

    docker cp [options] container:src_path dest_path
    
    docker cp [options] src_path container:dest_path
    
    docker cp /www/runoob 96f7f14e99ab:/www/
    docker cp 96f7f14e99ab:/www/ /www/runoob 
     
    3.diff

    检查容器里文件结构的修改

    docker diff [options] container
    
    docker diff mymysql

     

    镜像仓库

    1.login/logout

    登陆docker hub公共仓库(需要自己去注册)

    docker login [options] [server]
    docker logout [options] [server]
    
    -u: 登陆的用户名
    -p: 登陆的密码
     
    2.pull

    从镜像仓库中拉取或更新指定镜像

    docker pull [options] name[:tag|@DIGEST]
    
    -a: 拉取所有tagged镜像
    --disable-content-trust: 忽略镜像的校验,默认开启
    
    # 下载最新版java镜像
    docker pull java 
     
    3.push

    将本地镜像上传到镜像仓库,要先登陆到镜像仓库

    docker push [options] name[:tag]
    
    --disable-content-trust: 忽略镜像的校验,默认开启
    
    docker push myapache:v1
     
    4.search

    在docker hub查找镜像

    docker search [options] term
    
    --automated: 只列出automated build类型的镜像
    --no-trunc: 显示完整的镜像描述
    -s: 列出收藏数小于指定值的镜像
    
    
    docker search -s 10 java

     

    本地镜像管理

    1.images

    列出本地镜像

    docker images [options] [repository:tag]
    
    -a: 列出本地所有镜像(含中间映像层,默认过滤中间映像层)
    --digests: 显示镜像的摘要信息(MD5值)
    -f: 显示满足条件的镜像
    --format: 指定返回值的模版文件
    --no-trunc: 显示完整的镜像信息
    -q: 只显示镜像ID
    
    docker images
    
    docker images ubuntu
     
    2.rmi

    删除本地一个或多个镜像

    -f:强制删除
    --no-prune: 不移除该镜像的过程进行,默认移除
    
    docker rmi -f runoob/ubuntu:v4
     
    3.tag

    标记本地镜像,将其归入某一个仓库

    # 把镜像ubuntu:15.10标记为runoob/ubuntu:v3
    docker tag ubuntu:15.10 runoob/ubuntu:v3
     
    4.build

    用于使用dockerfile创建镜像(后面会讲解到)

    docker build [options] path | url | -
     
    5.history

    查看指定镜像的创建历史

    docker history [options] image
    
    -H: 以可读的格式打印镜像大小和日期,默认为true
    --no-trunc: 显示完整的提交记录
    -q: 仅列出提交记录ID
     
    6.save

    将指定镜像保存成tar归档文件

    docker save [options] image [image ...]
    
    -o: 输出文件
    
    docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
     
    7.import

    从归档文件中创建镜像

    docker import [options] file |URL |- [repository:tag]
    
    docker import my_ubuntu_v3.tar runoob/ubuntu:v4

    info/version

    1.info

    显示docker系统信息,包括镜像和容器数

    docker info [options]
    
    docker info
     
    2.version

    显示docker版本信息

    docker version [options]
    
    -f: 指定返回值的模板文件
    
    docker version

    其他

    stats

    查看每个运行的docker容器的状态

    docker stats 
    
    CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
    9c5e0e259466        test02              0.02%               12.46MiB / 100MiB   12.46%              1.3kB / 0B          19.2MB / 16.4kB     2
    d5183228b334        test01              0.02%               12.55MiB / 100MiB   12.55%              1.04kB / 0B         7.59MB / 16.4kB     2
  • 相关阅读:
    85 容器(十二)——队列与栈:LinkedList的光芒万丈
    84 关于数据结构中的添加与取出的方法:push pop poll offer add get...
    83 lambda表达式
    82 subList()方法于asList()的細節以及UnsupportedOperationException
    81 Javaassist——class文件的操作
    80 脚本引擎——js脚本引擎
    03 NoClassDefFoundError
    79 动态编译与动态运行
    78 反射——概念、类的各种信息的获取(类名,属性,方法...)
    002 为什么接口中可以同时使用public与default 修饰抽象方法?
  • 原文地址:https://www.cnblogs.com/djoker/p/10381926.html
Copyright © 2020-2023  润新知