zoukankan      html  css  js  c++  java
  • docker 容器命令

    语法
    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    OPTIONS说明:

    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

    -d: 后台运行容器,并返回容器ID;

    -i: 以交互模式运行容器,通常与 -t 同时使用;

    -P: 随机端口映射,容器内部端口随机映射到主机的高端口

    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    --name="nginx-lb": 为容器指定一个名称;

    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

    --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

    -h "mars": 指定容器的hostname;

    -e username="ritchie": 设置环境变量;

    --env-file=[]: 从指定文件读入环境变量;

    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

    -m :设置容器使用内存最大值;

    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

    --link=[]: 添加链接到另一个容器;

    --expose=[]: 开放一个端口或一组端口;

    --volume , -v: 绑定一个卷

    输出Hello world
    docker run ubuntu:15.10 /bin/echo "Hello world"
    ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
    /bin/echo "Hello world": 在启动的容器里执行的命令
    
    进入容器内
    docker run -i -t ubuntu:15.10 /bin/bash
    
    各个参数解析:
    ubuntu: ubuntu 镜像。
    /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
    
    启动容器(后台模式)
    docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    
    指定容器的名字
    docker run -itd --name ubuntu-test ubuntu /bin/bash
    注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec

    查看运行中的容器
    docker ps

    CONTAINER ID: 容器 ID。
    IMAGE: 使用的镜像。
    COMMAND: 启动容器时运行的命令。
    CREATED: 容器的创建时间。
    STATUS: 容器状态。
    状态有7种:
    created(已创建)
    restarting(重启中)
    running(运行中)
    removing(迁移中)
    paused(暂停)
    exited(停止)
    dead(死亡)

    PORTS: 容器的端口信息和使用的连接类型(tcpudp)。
    NAMES: 自动分配的容器名称。

    查看所有的容器命令如下

    docker ps -a

    进入容器
    在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

    docker attach
    
    docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

    attach 命令

    下面演示了使用 docker attach 命令。

    $ docker attach 1e560fca3906 


    注意: 如果从这个容器退出,会导致容器的停止。

    exec 命令

    下面演示了使用 docker exec 命令。

    docker exec -it 243c32535da7 /bin/bash

    注意: 如果从这个容器退出,不会导致容器的停止,这就是为什么推荐大家使用 docker exec 的原因。

    退出终端

    exit 或者ctrl D

    停止容器
    我们使用 docker stop 命令来停止容器:

    docker stop 2b1b7a428627 或者docker stop 名字

    重启容器

    docker restart <容器 ID>

    删除容器
    删除容器使用 docker rm 命令:

    $ docker rm -f 1e560fca3906

    下面的命令可以清理掉所有处于终止状态的容器。

    $ docker container prune

    导出和导入容器
    导出容器

    如果要导出本地某个容器,可以使用 docker export 命令。

    docker export 1e560fca3906 > ubuntu.tar

    导出容器 1e560fca3906 快照到本地文件 ubuntu.tar。

    导入容器快照
    可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

    $ cat docker/ubuntu.tar | docker import - test/ubuntu:v1

    此外,也可以通过指定 URL 或者某个目录来导入,例如:

    $ docker import http://example.com/exampleimage.tgz example/imagerepo

    运行一个 web 应用

    docker run -d -P training/webapp python app.py

     -P:将容器内部使用的网络端口映射到我们使用的主机上。

    我们也可以通过 -p 参数来设置不一样的端口:

    docker run -d -p 80:5000 training/webapp python app.py //80是外面机器端口,5000是容器端口

    直接查看端口的方式

    docker port bf08b7f2cd89
    5000/tcp -> 0.0.0.0:5000

    查看 WEB 应用程序日志

    docker logs -f bf08b7f2cd89 或者docker logs 2b1b7a428627

    查看WEB应用程序容器的进程
    我们还可以使用 docker top 来查看容器内部运行的进程

    runoob@runoob:~$ docker top wizardly_chandrasekhar
    UID PID PPID ... TIME CMD
    root 23245 23228 ... 00:00:00 python app.py

    检查 WEB 应用程序
    使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

    runoob@runoob:~$ docker inspect wizardly_chandrasekhar
    [
        {
            "Id": "bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85",
            "Created": "2018-09-17T01:41:26.174228707Z",
            "Path": "python",
            "Args": [
                "app.py"
            ],
            "State": {
                "Status": "running",
                "Running": true,
                "Paused": false,
                "Restarting": false,
                "OOMKilled": false,
                "Dead": false,
                "Pid": 23245,
                "ExitCode": 0,
                "Error": "",
                "StartedAt": "2018-09-17T01:41:26.494185806Z",
                "FinishedAt": "0001-01-01T00:00:00Z"
            },
    ......

    查询最后一次创建的容器:

    docker ps -l 
  • 相关阅读:
    Android——继续深造——从安装Android Studio 2.0开始(详)
    PHP——安装wampserver丢失MSVCR110.dll
    Marza Gift for GDC 2016
    Retrieve OpenGL Context from Qt 5.5 on OSX
    Space Time Varying Color Palette
    Screen Space Depth Varying Glow based on Heat Diffusion
    Visualization of Detail Point Set by Local Algebraic Sphere Fitting
    Glass Dragon
    Jump Flood Algorithms for Centroidal Voronoi Tessellation
    京都之行
  • 原文地址:https://www.cnblogs.com/lvchengda/p/12780760.html
Copyright © 2011-2022 走看看