• Docker 常用命令


    1. 在宿主机中查看 docker容器的ip地址

    [root@hadoop mydockerbuild]# docker inspect docker_test1 --format '{{.NetworkSettings.IPAddress}}'
    172.17.0.2

    此处 docker_test1 为docker容器的name

    2. 在安装docker的虚拟机上 可以使用 如下命令查看docker的安装版本信息

    [root@hadoop mydockerbuild]# docker -v
    Docker version 1.13.0, build 49bf474

    使用这个命令时,不需要docker的守护进程已经启动,但docker的其他命令都需要docker的守护进程启动。

    3. 使用docker version查看docker的详细信息

    [root@hadoop mydockerbuild]# docker version
    Client:
     Version:      1.13.0
     API version:  1.25
     Go version:   go1.7.3
     Git commit:   49bf474
     Built:        Tue Jan 17 09:55:28 2017
     OS/Arch:      linux/amd64
    
    Server:
     Version:      1.13.0
     API version:  1.25 (minimum version 1.12)
     Go version:   go1.7.3
     Git commit:   49bf474
     Built:        Tue Jan 17 09:55:28 2017
     OS/Arch:      linux/amd64
     Experimental: false

    返回的是docker client和docker服务端信息,如果docker的守护进程没有启动,之返回client信息。server信息不会显示,会提示无法连接到 docker daemon。

     4. 进入到Container内部:

    docker exec -it website /bin/bash

     不推荐使用 attach ,使用attach 在退出Container时 Container会挂掉

    因为使用的时Centos作为基础镜像,所以进入Container后就有了Centos的所有功能

    进入容器后可以使用 supervisorctl查看所有已启动的服务

    可以使用exit 退出容器

    5.退出docker容器可以使用快捷键 Ctrl+P + Ctrl+Q

    [root@hadoop mydockerbuild]# docker exec -it docker_test1 /bin/bash
    root@test1:/# [root@hadoop mydockerbuild]# 
    [root@hadoop mydockerbuild]# 

    6.查看docker的状态

    [hadoop@hadoop mydockerbuild]$ service docker status
    Redirecting to /bin/systemctl status  docker.service
    ● docker.service - Docker Application Container Engine
       Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
       Active: active (running) since 一 2017-02-27 16:11:47 CST; 1 day 19h ago #状态为 running
         Docs: https://docs.docker.com
     Main PID: 27046 (dockerd)
       Memory: 648.1M
       CGroup: /system.slice/docker.service
               ├─ 6530 docker-containerd-shim 8e98459a34fa3d79fcb9124f38c58c72aac...
               ├─15283 docker-containerd-shim 8e98459a34fa3d79fcb9124f38c58c72aac...
               ├─15474 docker-containerd-shim 8e98459a34fa3d79fcb9124f38c58c72aac...
               ├─27046 /usr/bin/dockerd
               └─27056 docker-containerd -l unix:///var/run/docker/libcontainerd/...
    [hadoop@hadoop mydockerbuild]$ 

    网上所也可以使用 sudo status docker 查看docker的守护进程是否存在,试了不起作用,可能是因为 在Red Hat和Fedora中。

    7. 同样使用service 可以完成docker的启动和停止

    停止docker

    hadoop@hadoop mydockerbuild]$ sudo service docker stop #停止docker
    Redirecting to /bin/systemctl stop  docker.service
    [hadoop@hadoop mydockerbuild]$ service docker status  #查看docker状态
    Redirecting to /bin/systemctl status  docker.service
    ● docker.service - Docker Application Container Engine
       Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
       Active: inactive (dead) since 三 2017-03-01 11:21:26 CST; 9s ago  #这里Active为 dead
         Docs: https://docs.docker.com
     Main PID: 27046 (code=exited, status=0/SUCCESS)
    [hadoop@hadoop mydockerbuild]$ 

    启动docker 并查看状态

    [hadoop@hadoop mydockerbuild]$ service docker start
    Redirecting to /bin/systemctl start  docker.service
    [hadoop@hadoop mydockerbuild]$ service docker status
    Redirecting to /bin/systemctl status  docker.service
    ● docker.service - Docker Application Container Engine
       Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
       Active: active (running) since 三 2017-03-01 11:24:54 CST; 9s ago
         Docs: https://docs.docker.com
     Main PID: 16032 (dockerd)
       Memory: 21.7M
       CGroup: /system.slice/docker.service
               ├─16032 /usr/bin/dockerd
               └─16042 docker-containerd -l unix:///var/run/docker/libcontainerd/...
    [hadoop@hadoop mydockerbuild]$ 

    8. 查看docker的环境信息

    docker info 此命令需要docker daemon已经启动

    [hadoop@hadoop mydockerbuild]$ sudo docker info
    Containers: 11
     Running: 0
     Paused: 0
     Stopped: 11
    Images: 6
    Server Version: 1.13.0
    Storage Driver: overlay
     Backing Filesystem: xfs
     Supports d_type: true
    Logging Driver: json-file
    Cgroup Driver: cgroupfs
    Plugins: 
     Volume: local
     Network: bridge host macvlan null overlay
    Swarm: inactive
    Runtimes: runc
    Default Runtime: runc
    Init Binary: docker-init
    containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
    runc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e
    init version: 949e6fa
    Security Options:
     seccomp
      Profile: default
    Kernel Version: 3.10.0-514.el7.x86_64
    Operating System: CentOS Linux 7 (Core)
    OSType: linux
    Architecture: x86_64
    CPUs: 4
    Total Memory: 7.441 GiB
    Name: hadoop
    ID: Z2IN:M5GX:54NG:VYBH:MDLI:QIST:SHGB:LZUK:2ZJR:RI3M:P6M5:ZRMK
    Docker Root Dir: /var/lib/docker
    Debug Mode (client): false
    Debug Mode (server): false
    Registry: https://index.docker.io/v1/
    Experimental: false
    Insecure Registries:
     127.0.0.0/8
    Live Restore Enabled: false
    [hadoop@hadoop mydockerbuild]$ 

    9. 查询docker主机上已有的docker镜像

    [hadoop@hadoop mydockerbuild]$ sudo docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              latest              0ef2e08ed3fa        31 hours ago        130 MB
    ubuntu              14.04               7c09e61e9035        31 hours ago        188 MB
    docker-whale        latest              17104b3a899f        42 hours ago        256 MB
    hello-world         latest              48b5124b2768        6 weeks ago         1.84 kB
    docker/whalesay     latest              6b362a9f73eb        21 months ago       247 MB
    [hadoop@hadoop mydockerbuild]$ 

    本机的所有镜像都保存在 本机的 /var/lib/docker 目录下。

    10. 查询docker主机上已经创建的容器

    查询所有已启动的容器

    [hadoop@hadoop mydockerbuild]$ sudo docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

    查询所有的容器,包括启动和未启动的

    11. 使用docker search 查找镜像

    [hadoop@hadoop mydockerbuild]$ sudo docker search centos
    NAME                                   DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    centos                                 The official build of CentOS.                   3130      [OK]       
    jdeathe/centos-ssh                     CentOS-6 6.8 x86_64 / CentOS-7 7.3.1611 x8...   60                   [OK]
    jdeathe/centos-ssh-apache-php          CentOS-6 6.8 x86_64 - Apache / PHP-FPM / P...   25                   [OK]
    nimmis/java-centos                     This is docker images of CentOS 7 with dif...   23                   [OK]
    consol/centos-xfce-vnc                 Centos container with "headless" VNC sessi...   22                   [OK]
    million12/centos-supervisor            Base CentOS-7 with supervisord launcher, h...   13                   [OK]
    nickistre/centos-lamp                  LAMP on centos setup                            10                   [OK]
    torusware/speedus-centos               Always updated official CentOS docker imag...   8                    [OK]
    egyptianbman/docker-centos-nginx-php   A simple and highly configurable docker co...   6                    [OK]
    nathonfowlie/centos-jre                Latest CentOS image with the JRE pre-insta...   5                    [OK]
    centos/mariadb55-centos7                                                               4                    [OK]
    harisekhon/centos-scala                Scala + CentOS (OpenJDK tags 2.10-jre7 - 2...   2                    [OK]
    centos/tools                           Docker image that has systems administrati...   2                    [OK]
    centos/redis                           Redis built for CentOS                          2                    [OK]
    harisekhon/centos-java                 Java on CentOS (OpenJDK, tags jre/jdk7-8)       2                    [OK]
    freenas/centos                         Simple CentOS Linux interactive container       1                    [OK]
    darksheer/centos                       Base Centos Image -- Updated hourly             1                    [OK]
    timhughes/centos                       Centos with systemd installed and running       1                    [OK]
    blacklabelops/centos                   CentOS Base Image! Built and Updates Daily!     1                    [OK]
    vcatechnology/centos                   A CentOS Image which is updated daily           0                    [OK]
    smartentry/centos                      centos with smartentry                          0                    [OK]
    januswel/centos                        yum update-ed CentOS image                      0                    [OK]
    otagoweb/centos                        Apache (with PHP7), built on CentOS 7           0                    [OK]
    termbox/centos                         CentOS                                          0                    [OK]
    repositoryjp/centos                    Docker Image for CentOS.                        0                    [OK]
    [hadoop@hadoop mydockerbuild]$ 

    12.拉取一个镜像

    [hadoop@hadoop mydockerbuild]$ sudo docker pull centos:7.1

    如果这里不写 :7.1 则会默认拉取最新的镜像

    [hadoop@hadoop mydockerbuild]$ sudo docker pull centos
    Using default tag: latest

    这里拉取镜像从Docker Hub 跟网络有关系,如果网络不通畅,有可能拉取不成功。

    13.将镜像转载为容器 使用 docker run

    有了镜像之后,可以使用 docker run 将镜像变成容器:
    
    docker run [-it|-d] -p 2222:22 --name base csphere/centos:7.1
    
    -it 采用交互的方式
    
    -d 把Container在后台启动以后,Container会返回一个ContainerID
    
    -P 22 设置这个参数后 表明容器暴露的端口为22 宿主机会随机的找一个没有被使用的 端口号和 22 这个端口进行映射(假如随机2222:22) 即可以在外部直接使用 2222 端口直接访问容器,在宿主机重启后又会找一个随机未被使用的端口号进行映射
    
    -p 2222:22 不管是宿主机重启还是Container重启,这个2222一直会给22端口映射,除非这个Container删掉以后会把这个2222给其他的Container
    
    --name 通过docker镜像生成docker 容器,给docker容器起一个名字以方便以后去查找
    
    使用 csphere/centos:7.1 来创建叫做base的docker容器

    14. 删除一个容器

    [hadoop@hadoop dockerJavaTomcat]$ sudo docker rm /base
    /base

    /base 为容器名称

    15. 删除一个镜像 test/centos 为镜像名称

    hadoop@hadoop dockerJavaTomcat]$ sudo docker rmi test/centos
    Untagged: test/centos:latest
    Deleted: sha256:1c1e0afd4637f9f6d0eeef78b962f553909b656a585451cc72d2b7709a1301b6
    Deleted: sha256:3849143870100cd42cbe9c9d7d57b86f770eb1562cba0137a1ccbd125356c6b7
    Deleted: sha256:2901facb33c9e596228d32cd3833911d45473ac1b1917d0b67d2feafd9ae8011
    Deleted: sha256:de37cfdfa4eb377c944cb94a15474a1c4ab24577d596779e145bdff890e4c376
    Deleted: sha256:dffb0316ca99c427eb8e7fcec81b8b8f2f2139e70ffe5b017e535b8c927a3678
    Deleted: sha256:bf9b522b6a825775eec04fabc700759394ed7e5ed284bb764df8cbff5da6c3de
    Deleted: sha256:8d44342286e2f23644f3dd49d35b8f6913720383cbb126def144945859ba415c
    Deleted: sha256:52fba5ea150c68a6325cb59386678f2a0e5e3f33b3450d15ac55662b19d04cc4
    Deleted: sha256:aa497055a9f4f9ca607de6865e47e5c342728bdb7a359a2a3879b9e01e9705f5
    Deleted: sha256:12bf021320b738dfab4c1052e508b3cde752af333dd047a503146e37a57d27c3
    Deleted: sha256:25dfd5409299e45a52204719788a64f4d6ec42b94ed1c1c52b444dffe1617530
    Deleted: sha256:2a8f3b2595c0d7bbd96c8311aafd38a19ee38dfd7db10f5f143e12a488453a97
    Deleted: sha256:f8ac2fbb89387ed573175a3207a2a7228bacee098e98d859ef5cc69280c634bd
    Deleted: sha256:ca6ee1356e1919580f56aba2416d558358f13e0fd4af63fc1316a08b3b6cf556
    Deleted: sha256:9fcaf31daa347938f67d3d57510ac2167b1943ab3046d2edc80025b3e78db016
    Deleted: sha256:c2cfaed91fa85a1e25a93902ccf7b0adfd6d11a96ad60e05c5743deac4561a0d
    Deleted: sha256:5179194bb64957b92d747d0ef8658bd2c94e14724184f84bba5f6a97a3b52600
    Deleted: sha256:3c5d03deca832571ebaf26e19cafcbb06b5770339dbd669bd938930942ca9ac8
    [hadoop@hadoop dockerJavaTomcat]$ 

    16.docker tag imageid name:tag

    使用 docker tag 可以修改image 的名称

    [root@hadoop dockerPubProgram]# docker tag 6564d0f11d31 js/centos:oracle-package
  • 相关阅读:
    关于在组件GIS开发中使用Python的一点补充说明
    shell环境变量以及set,env,export的区别
    快速配置 Samba 将 Linux 目录映射为 Windows 驱动器
    Expect 教程中文版
    rpm 包管理
    .bash_profile和.bashrc的什么区别
    grep 零宽断言
    自动化测试
    dialog shell下的gui设计 代替繁杂libncurses编程
    x11 gtk qt gnome kde 之间的区别和联系
  • 原文地址:https://www.cnblogs.com/wq3435/p/6483263.html
Copyright © 2020-2023  润新知