Docker 容器使用(二)

Docker 容器使用


Docker 客户端

  • docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。
[root@docker ~]# docker
Usage: docker [OPTIONS] COMMAND [arg...]
       docker [ --help | -v | --version ]

A self-sufficient runtime for containers.

Options:

  --config=~/.docker              Location of client config files
  -D, --debug                     Enable debug mode
  -H, --host=[]                   Daemon socket(s) to connect to
  -h, --help                      Print usage
  -l, --log-level=info            Set the logging level
  --tls                           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                     Use TLS and verify the remote
  -v, --version                   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 between a container and the local filesystem
    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    Export a container's filesystem as a tar archive
    history   Show the history of an image
    images    List images
    import    Import the contents from a tarball to create a filesystem image
    info      Display system-wide information
    inspect   Return low-level information on a container, image or task
    kill      Kill one or more running containers
    load      Load an image from a tar archive or STDIN
    login     Log in to a Docker registry.
    logout    Log out from a Docker registry.
    logs      Fetch the logs of a container
    network   Manage Docker networks
    node      Manage Docker Swarm nodes
    pause     Pause all processes within one or more containers
    port      List port mappings or a specific mapping for the container
    ps        List containers
    pull      Pull an image or a repository from a registry
    push      Push an image or a repository to a registry
    rename    Rename a container
    restart   Restart a container
    rm        Remove one or more containers
    rmi       Remove one or more images
    run       Run a command in a new container
    save      Save one or more images to a tar archive (streamed to STDOUT by default)
    search    Search the Docker Hub for images
    service   Manage Docker services
    start     Start one or more stopped containers
    stats     Display a live stream of container(s) resource usage statistics
    stop      Stop one or more running containers
    swarm     Manage Docker Swarm
    tag       Tag an image into a repository
    top       Display the running processes of a container
    unpause   Unpause all processes within one or more containers
    update    Update configuration of one or more containers
    version   Show the Docker version information
    volume    Manage Docker volumes
    wait      Block until a container stops, then print its exit code

Run 'docker COMMAND --help' for more information on a command.
[root@docker ~]# 
[root@docker ~]# docker
Usage: docker [OPTIONS] COMMAND [arg...]
       docker [ --help | -v | --version ]

A self-sufficient runtime for containers.

Options:

  --config=~/.docker              Location of client config files
  -D, --debug                     Enable debug mode
  -H, --host=[]                   Daemon socket(s) to connect to
  -h, --help                      Print usage
  -l, --log-level=info            Set the logging level
  --tls                           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                     Use TLS and verify the remote
  -v, --version                   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 between a container and the local filesystem
    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    Export a container's filesystem as a tar archive
    history   Show the history of an image
    images    List images
    import    Import the contents from a tarball to create a filesystem image
    info      Display system-wide information
    inspect   Return low-level information on a container, image or task
    kill      Kill one or more running containers
    load      Load an image from a tar archive or STDIN
    login     Log in to a Docker registry.
    logout    Log out from a Docker registry.
    logs      Fetch the logs of a container
    network   Manage Docker networks
    node      Manage Docker Swarm nodes
    pause     Pause all processes within one or more containers
    port      List port mappings or a specific mapping for the container
    ps        List containers
    pull      Pull an image or a repository from a registry
    push      Push an image or a repository to a registry
    rename    Rename a container
    restart   Restart a container
    rm        Remove one or more containers
    rmi       Remove one or more images
    run       Run a command in a new container
    save      Save one or more images to a tar archive (streamed to STDOUT by default)
    search    Search the Docker Hub for images
    service   Manage Docker services
    start     Start one or more stopped containers
    stats     Display a live stream of container(s) resource usage statistics
    stop      Stop one or more running containers
    swarm     Manage Docker Swarm
    tag       Tag an image into a repository
    top       Display the running processes of a container
    unpause   Unpause all processes within one or more containers
    update    Update configuration of one or more containers
    version   Show the Docker version information
    volume    Manage Docker volumes
    wait      Block until a container stops, then print its exit code

Run 'docker COMMAND --help' for more information on a command.
  •  我们要查看 docker stats 指令的具体使用方法:
[root@docker ~]# docker stats --help

Usage:	docker stats [OPTIONS] [CONTAINER...]

Display a live stream of container(s) resource usage statistics

Options:
  -a, --all         Show all containers (default shows just running)
      --help        Print usage
      --no-stream   Disable streaming stats and only pull the first result

运行一个 Web 应用

  • 我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。
[root@docker ~]# docker pull training/webapp
[root@docker ~]# docker run -d -P docker.io/training/webapp python app.py
fde85a9788aca07c5bb7168e340dd63a83900cca9aaaa271d5b087d1e1b50a1e
[root@docker ~]# docker ps
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS                     NAMES
fde85a9788ac        docker.io/training/webapp   "python app.py"     13 seconds ago      Up 12 seconds       0.0.0.0:32769->5000/tcp   cranky_pike
  • Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上。

  • 这时我们可以通过浏览器访问WEB应用

  • 也可以通过 -p 参数来设置不一样的端口:
[root@docker ~]# docker run -d -p 5000:5000 training/webapp python app.py
dbaeeb45cc9bae681512db5b329b026cbc01f60f46300663760df121246f8446

网络端口的快捷方式

  • 通过 docker ps 命令可以查看到容器的端口映射,docker 还提供了另一个快捷方式 docker port,使用 docker port 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号
  • 上面我们创建的 web 应用容器 ID 为 dbaeeb45cc9b 名字为 admiring_golick

  • 我可以使用 docker port dbaeeb45cc9b  或 docker port admiring_golick 来查看容器端口的映射情况。

[root@docker ~]# docker port dbaeeb45cc9b 
5000/tcp -> 0.0.0.0:5000
[root@docker ~]# docker port admiring_golick
5000/tcp -> 0.0.0.0:5000

查看 WEB 应用程序日志

  • docker logs [ID或者名字] 可以查看容器内部的标准输出。
[root@docker ~]# docker logs -f bf08b7f2cd89
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 -
192.168.239.1 - - [09/May/2016 16:30:37] "GET /favicon.ico HTTP/1.1" 404 -
  • -f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。
  • 从上面,我们可以看到应用程序使用的是 5000 端口并且能够查看到应用程序的访问日志。

查看WEB应用程序容器的进程

[root@docker ~]# docker top dbaeeb45cc9b
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4101                4090                0                   08:59               ?                   00:00:00            python app.py

检查 WEB 应用程序

  • 使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
[root@docker ~]# docker inspect dbaeeb45cc9b

停止 WEB 应用容器

  • 已经停止的容器,我们可以使用命令 docker start 来启动。
[root@docker ~]# docker start fde85a9788aca07c5bb7168e340dd63a83900cca9aaaa271d5b087d1e1b50a1e
  • docker ps -l 查询最后一次创建的容器:
[root@docker ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
dbaeeb45cc9b        training/webapp     "python app.py"     About an hour ago   Up About an hour    0.0.0.0:5000->5000/tcp   admiring_golick

移除WEB应用容器

  • 我们可以使用 docker rm 命令来删除不需要的容器。
[root@docker ~]# docker rm fde85a9788aca07c5bb7168e340dd63a83900cca9aaaa271d5b087d1e1b50a1e 
fde85a9788aca07c5bb7168e340dd63a83900cca9aaaa271d5b087d1e1b50a1e
  • 删除容器时,容器必须是停止状态,否则报错

 

你可能感兴趣的:(虚拟化,Docker)