分享

Docker入门--命令使用详解

xuanxufeng 发表于 2015-8-9 20:11:23 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 16406

问题导读


1.如何查看Docker命令?
2.如何显示 Docker 系统信息,包括镜像和容器数?
3.那个命令实现从本地移除一个或多个指定的镜像?






使用命令查看一下docker都有那些命令:
[mw_shl_code=bash,true]docker -h[/mw_shl_code]

你将得到如下结果:
[mw_shl_code=bash,true]A self-sufficient runtime for linux containers.

Options:

  --api-cors-header=                   Set CORS headers in the remote API
  -b, --bridge=                        Attach containers to a network bridge
  --bip=                               Specify network bridge IP
  -D, --debug=false                    Enable debug mode
  -d, --daemon=false                   Enable daemon mode
  --default-gateway=                   Container default gateway IPv4 address
  --default-gateway-v6=                Container default gateway IPv6 address
  --default-ulimit=[]                  Set default ulimits for containers
  --dns=[]                             DNS server to use
  --dns-search=[]                      DNS search domains to use
  -e, --exec-driver=native             Exec driver to use
  --exec-opt=[]                        Set exec driver options
  --exec-root=/var/run/docker          Root of the Docker execdriver
  --fixed-cidr=                        IPv4 subnet for fixed IPs
  --fixed-cidr-v6=                     IPv6 subnet for fixed IPs
  -G, --group=docker                   Group for the unix socket
  -g, --graph=/var/lib/docker          Root of the Docker runtime
  -H, --host=[]                        Daemon socket(s) to connect to
  -h, --help=false                     Print usage
  --icc=true                           Enable inter-container communication
  --insecure-registry=[]               Enable insecure registry communication
  --ip=0.0.0.0                         Default IP when binding container ports
  --ip-forward=true                    Enable net.ipv4.ip_forward
  --ip-masq=true                       Enable IP masquerading
  --iptables=true                      Enable addition of iptables rules
  --ipv6=false                         Enable IPv6 networking
  -l, --log-level=info                 Set the logging level
  --label=[]                           Set key=value labels to the daemon
  --log-driver=json-file               Default driver for container logs
  --log-opt=map[]                      Set log driver options
  --mtu=0                              Set the containers network MTU
  -p, --pidfile=/var/run/docker.pid    Path to use for daemon PID file
  --registry-mirror=[]                 Preferred Docker registry mirror
  -s, --storage-driver=                Storage driver to use
  --selinux-enabled=false              Enable selinux support
  --storage-opt=[]                     Set storage driver options
  --tls=false                          Use TLS; implied by --tlsverify
  --tlscacert=~/.docker/ca.pem         Trust certs signed only by this CA
  --tlscert=~/.docker/cert.pem         Path to TLS certificate file
  --tlskey=~/.docker/key.pem           Path to TLS key file
  --tlsverify=false                    Use TLS and verify the remote
  --userland-proxy=true                Use userland proxy for loopback traffic
  -v, --version=false                  Print version information and quit

Commands:
    attach    Attach to a running container
    build     Build an image from a Dockerfile
    commit    Create a new image from a container's changes
    cp        Copy files/folders from a container's filesystem to the host path
    create    Create a new container
    diff      Inspect changes on a container's filesystem
    events    Get real time events from the server
    exec      Run a command in a running container
    export    Stream the contents of a container as a tar archive
    history   Show the history of an image
    images    List images
    import    Create a new filesystem image from the contents of a tarball
    info      Display system-wide information
    inspect   Return low-level information on a container or image
    kill      Kill a running container
    load      Load an image from a tar archive
    login     Register or log in to a Docker registry server
    logout    Log out from a Docker registry server
    logs      Fetch the logs of a container
    pause     Pause all processes within a container
    port      Lookup the public-facing port that is NAT-ed to PRIVATE_PORT
    ps        List containers
    pull      Pull an image or a repository from a Docker registry server
    push      Push an image or a repository to a Docker registry server
    rename    Rename an existing container
    restart   Restart a running container
    rm        Remove one or more containers
    rmi       Remove one or more images
    run       Run a command in a new container
    save      Save an image to a tar archive
    search    Search for an image on the Docker Hub
    start     Start a stopped container
    stats     Display a stream of a containers' resource usage statistics
    stop      Stop a running container
    tag       Tag an image into a repository
    top       Lookup the running processes of a container
    unpause   Unpause a paused container
    version   Show the Docker version information
    wait      Block until a container stops, then print its exit code

Run 'docker COMMAND --help' for more information on a command.[/mw_shl_code]

下面来详细说明一些命令的使用,在此之前,说一下如果不理解理解 Docker 和 Docker Hub 及两者关系,可以类比 Git 和 GitHub 理解。
1. docker version
显示 Docker 版本信息。
2. docker info
显示 Docker 系统信息,包括镜像和容器数。
3. docker search
从 Docker Hub 中搜索符合条件的镜像。

[mw_shl_code=bash,true]docker search -s 3 --automated --no-trunc django[/mw_shl_code]


上面命令的意思是搜索处收藏数不小于 3 ,并且能够自动化构建的 django 镜像,并且完整显示镜像描述。

参数:


[mw_shl_code=bash,true]--automated=false    Only show automated builds 只列出 automated build类型的镜像--no-trunc=false     Don't truncate output 显示完整的镜像描述
  -s, --stars=0        Only displays with at least x stars 只列出不低于x个收藏的镜像[/mw_shl_code]

4. docker pull
从 Docker Hub 中拉取或者更新指定镜像。

[mw_shl_code=bash,true]docker pull ubuntu:latest[/mw_shl_code]

上面命令的意思是拉取ubuntu最新的镜像。

参数:

[mw_shl_code=bash,true]-a, --all-tags=false    Download all tagged images in the repository 拉取所有 tagged 镜像[/mw_shl_code]


5. docker login
按步骤输入在 Docker Hub 注册的用户名、密码和邮箱即可完成登录。
6. docker logout
运行后从指定服务器登出,默认为官方服务器。
7. docker images
列出本地所有镜像。对镜像名称进行关键词查询。

[mw_shl_code=bash,true]docker images ubuntu[/mw_shl_code]

上面命令的意思是列出本地镜像名为 ubuntu 的所有镜像。不加 ubuntu,就列出所有本地镜像。

参数:


[mw_shl_code=bash,true] -a, --all=false      Show all images (default hides intermediate images) 列出所有镜像(含中间映像层,默认情况下,过滤掉中间映像层)
  --digests=false      Show digests 展示镜像的摘要
  -f, --filter=[]      Filter output based on conditions provided 过滤镜像,如: -f ['dangling=true'] 只列出满足dangling=true 条件的镜像
  --no-trunc=false     Don't truncate output 显示完整的镜像ID
  -q, --quiet=false    Only show numeric IDs 仅列出镜像ID[/mw_shl_code]


8. docker ps

列出所有运行中容器。

参数:


[mw_shl_code=bash,true]-a, --all=false       Show all containers (default shows just running) 列出所有容器(含沉睡镜像)
  --before=             Show only container created before Id or Name 列出在某一容器之前创建的容器,接受容器名称和ID作为参数
  -f, --filter=[]       Filter output based on conditions provided -f [exited=<int>] 列出满足exited=<int> 条件的容器-l, --latest=false    Show the latest created container, include non-running 仅列出最新创建的一个容器
  -n=-1                 Show n last created containers, include non-running 列出最近创建的n个容器
  --no-trunc=false      Don't truncate output 显示完整的容器ID
  -q, --quiet=false     Only display numeric IDs 仅列出容器ID
  -s, --size=false      Display total file sizes 显示容器大小
  --since=              Show created since Id or Name, include non-running 列出在某一容器之后创建的容器,接受容器名称和ID作为参数[/mw_shl_code]


9. docker rmi
从本地移除一个或多个指定的镜像。

[mw_shl_code=bash,true]docker rmi nginx:latest ubuntu:14.04[/mw_shl_code]
上面命令的意思是移除 nginx 最新版本的镜像和ubuntu 14.04 版本的镜像。

参数:

[mw_shl_code=bash,true]-f, --force=false    Force removal of the image 强行移除该镜像,即使其正被使用
  --no-prune=false     Do not delete untagged parents 不移除该镜像的过程镜像,默认移除[/mw_shl_code]



10. docker rm
从本地移除一个或多个指定的容器。
[mw_shl_code=bash,true]docker rm harrysun/lnmp
docker rm -l webapp/redis
[/mw_shl_code]

上面命令的意思分别是移除 harrysun/lnmp 的本地容器和移除 webapp/redis 容器的网络连接。
参数:
[mw_shl_code=bash,true]
  -f, --force=false      Force the removal of a running container (uses SIGKILL) 强行移除该容器,即使其正在运行-l, --link=false       Remove the specified link 移除容器间的网络连接,而非容器本身
  -v, --volumes=false    Remove the volumes associated with the container 移除与容器关联的空间[/mw_shl_code]


11. docker history
查看指定镜像的创建历史。
[mw_shl_code=bash,true]docker history -H harrysun/lnmp:0.1[/mw_shl_code]

上面命令的意思是查看 harrysun/lnmp:0.1 镜像的历史。
[mw_shl_code=bash,true]-H, --human=true     Print sizes and dates in human readable format 以可读的格式打印镜像大小和日期
  --no-trunc=false     Don't truncate output 显示完整的提交记录
  -q, --quiet=false    Only show numeric IDs 仅列出提交记录ID[/mw_shl_code]


12. docker start|stop|restart
启动、停止和重启一个或多个指定容器。
[mw_shl_code=bash,true]docker start -i b5e08e1435b3[/mw_shl_code]

上面命令的意思是启动一个 ID 为 b5e08e1435b3 的容器,并进入交互模式。
参数:
[mw_shl_code=bash,true]-a, --attach=false         Attach STDOUT/STDERR and forward signals 启动一个容器并打印输出结果和错误
  -i, --interactive=false    Attach container's STDIN 启动一个容器并进入交互模式
  -t, --time=10      Seconds to wait for stop before killing the container 停止或者重启容器的超时时间(秒),超时后系统将杀死进程。[/mw_shl_code]

13. docker kill
杀死一个或多个指定容器进程。
[mw_shl_code=bash,true]docker kill -s KILL 94c6b3c3f04a[/mw_shl_code]

上面命令的意思是杀死一个 ID 为 94c6b3c3f04a 的容器,并向容器发送 KILL 信号。
参数:
[mw_shl_code=bash,true] -s, --signal=KILL    Signal to send to the container 自定义发送至容器的信号[/mw_shl_code]

14. docker events
从服务器拉取个人动态,可选择时间区间。
[mw_shl_code=bash,true]docker events --since="20150720" --until="20150808"[/mw_shl_code]

上面命令的意思是拉取个人从 2015/07/20 到 2015/08/08 的个人动态。
参数:
[mw_shl_code=bash,true]-f, --filter=[]    Filter output based on conditions provided--since=           Show all events created since timestamp 开始时间
  --until=           Stream events until this timestamp 结束时间[/mw_shl_code]

15. docker save
将指定镜像保存成 tar 归档文件, docker load 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。
[mw_shl_code=bash,true]docker save -o ubuntu14.04.tar ubuntu:14.04[/mw_shl_code]

上面命令的意思是将镜像 ubuntu:14.04 保存为 ubuntu14.04.tar 文件。
参数:
[mw_shl_code=bash,true]-o, --output=      Write to an file, instead of STDOUT 输出到的文件[/mw_shl_code]

16. docker load
从 tar 镜像归档中载入镜像, docker save 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。
[mw_shl_code=bash,true]docker load -i ubuntu14.04.tar[/mw_shl_code]

上面命令的意思是将 ubuntu14.04.tar 文件载入镜像中。
参数:
[mw_shl_code=bash,true] -i, --input=       Read from a tar archive file, instead of STDIN 加载的tar文件[/mw_shl_code]

17. docker export
将指定的容器保存成 tar 归档文件, docker import 的逆操作。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。
[mw_shl_code=bash,true]docker export -o ubuntu14.04.tar 94c6b3c3f04a[/mw_shl_code]

上面命令的意思是将 ID 为 94c6b3c3f04a 容器保存为 ubuntu14.04.tar 文件。
参数:
[mw_shl_code=bash,true]-o, --output=      Write to a file, instead of STDOUT[/mw_shl_code]

18. docker import
从归档文件(支持远程文件,.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz)创建一个镜像, export 的逆操作,可为导入镜像打上标签。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。
[mw_shl_code=bash,true]cat ./ubuntu14.04.tar | sudo docker import - ubuntu:14.04[/mw_shl_code]

上面命令的意思是使用 ./ubuntu14.04.tar 文件创建 ubuntu:14.04 的镜像,默认会从远端拉取文件。
19. docker top
查看一个正在运行容器进程,支持 ps 命令参数。

20. docker inspect
检查镜像或者容器的参数,默认返回 JSON 格式。 (Template
[mw_shl_code=bash,true]docker inspect --format '{{.DockerVersion}}' ubuntu:14.04[/mw_shl_code]

上面命令的意思是返回 ubuntu:14.04  镜像的 docker 版本
参数:
[mw_shl_code=bash,true]-f, --format=      Format the output using the given go template 指定返回值的模板文件[/mw_shl_code]

21. docker pause
暂停某一容器的所有进程。
22. docker unpause
恢复某一容器的所有进程。
23. docker tag
标记本地镜像,将其归入某一仓库。
[mw_shl_code=bash,true]sudo docker tag 5db5f8471261 harrysun/lnmp:0.2[/mw_shl_code]

上面命令的意思是将 ID 为 5db5f8471261 的容器标记为 harrysun/lnmp:0.2 镜像。
参数:
[mw_shl_code=bash,true]-f, --force=false    Force 会覆盖已有标记[/mw_shl_code]

24. docker push
将镜像推送至远程仓库,默认为 Docker Hub 。
[mw_shl_code=bash,true]docker push harrysun/lnmp:0.2[/mw_shl_code]

上面命令的意思是将 harrysun/lnmp:0.2 镜像推送到远端。
25. docker logs
获取容器运行时的输出日志。
[mw_shl_code=bash,true]docker logs -f --tail 10 94c6b3c3f04a[/mw_shl_code]

上面命令的意思是将追踪 ID 为 94c6b3c3f04a 的容器最新的10条日志。
参数:
[mw_shl_code=bash,true] -f, --follow=false        Follow log output 跟踪容器日志的最近更新
  --since=                  Show logs since timestamp 开始时间
  -t, --timestamps=false    Show timestamps 显示容器日志的时间戳
  --tail=all                Number of lines to show from the end of the logs 仅列出最新n条容器日志[/mw_shl_code]

26. docker run
启动一个容器,在其中运行指定命令。
[mw_shl_code=bash,true]docker run -i -t ubuntu:14.04 /bin/bash[/mw_shl_code]
上面命令的意思是以 ubuntu:14.04 镜像启动一个容器,以交互模式运行,并为容器重新分配一个伪输入终端。
参数:(这个命令的参数有点多,只说其中一部分)


[mw_shl_code=bash,true]-a, --attach=[]             Attach to STDIN, STDOUT or STDERR 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
  --add-host=[]               Add a custom host-to-IP mapping (host:ip)
  --blkio-weight=0            Block IO (relative weight), between 10 and 1000
  -c, --cpu-shares=0          CPU shares (relative weight)
  --cap-add=[]                Add Linux capabilities
  --cap-drop=[]               Drop Linux capabilities
  --cgroup-parent=            Optional parent cgroup for the container
  --cidfile=                  Write the container ID to the file
  --cpu-period=0              Limit CPU CFS (Completely Fair Scheduler) period
  --cpu-quota=0               Limit the CPU CFS quota
  --cpuset-cpus=              CPUs in which to allow execution (0-3, 0,1) 绑定容器到指定CPU运行
  --cpuset-mems=              MEMs in which to allow execution (0-3, 0,1) 绑定容器到指定MEM运行
  -d, --detach=false          Run container in background and print container ID 后台运行容器,并返回容器ID
  --device=[]                 Add a host device to the container
  --dns=[]                    Set custom DNS servers 指定容器使用的DNS服务器,默认和宿主一致
  --dns-search=[]             Set custom DNS search domains 指定容器DNS搜索域名,默认和宿主一致
  -e, --env=[]                Set environment variables 设置环境变量
  --entrypoint=               Overwrite the default ENTRYPOINT of the image
  --env-file=[]               Read in a file of environment variables 从指定文件读入环境变量
  --expose=[]                 Expose a port or a range of ports
  -h, --hostname=             Container host name 指定容器的hostname
  --help=false                Print usage
  -i, --interactive=false     Keep STDIN open even if not attached 以交互模式运行容器,通常与 -t 同时使用
  --ipc=                      IPC namespace to use
  -l, --label=[]              Set meta data on a container
  --label-file=[]             Read in a line delimited file of labels
  --link=[]                   Add link to another container
  --log-driver=               Logging driver for container
  --log-opt=[]                Log driver options
  --lxc-conf=[]               Add custom lxc options
  -m, --memory=               Memory limit
  --mac-address=              Container MAC address (e.g. 92:d0:c6:0a:29:33)
  --memory-swap=              Total memory (memory + swap), '-1' to disable swap
  --name=                     Assign a name to the container 为容器指定一个名称
  --net=bridge                Set the Network mode for the container  指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型
  --oom-kill-disable=false    Disable OOM Killer
  -P, --publish-all=false     Publish all exposed ports to random ports
  -p, --publish=[]            Publish a container's port(s) to the host
  --pid=                      PID namespace to use
  --privileged=false          Give extended privileges to this container
  --read-only=false           Mount the container's root filesystem as read only
  --restart=no                Restart policy to apply when a container exits
  --rm=false                  Automatically remove the container when it exits
  --security-opt=[]           Security Options
  --sig-proxy=true            Proxy received signals to the process
  -t, --tty=false             Allocate a pseudo-TTY 为容器重新分配一个伪输入终端,通常与 -i 同时使用
  -u, --user=                 Username or UID (format: <name|uid>[:<group|gid>])
  --ulimit=[]                 Ulimit options
  --uts=                      UTS namespace to use
  -v, --volume=[]             Bind mount a volume
  --volumes-from=[]           Mount volumes from the specified container(s)
  -w, --workdir=              Working directory inside the container[/mw_shl_code]


没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条