Docker入门

作者: 印随2018 | 来源:发表于2019-06-29 14:36 被阅读13次

    慢慢练,碎碎念

    一、确保Docker以及就绪

    [root@localhost harbor]# docker info 
    Containers: 10
     Running: 10
     Paused: 0
     Stopped: 0
    Images: 33
    Server Version: 18.09.6
    ......
    
    

    查看启用的网络插件

    [root@localhost harbor]# curl http://127.0.0.1:2375/info 2> /dev/null | jq .Plugins.Network
    [
      "bridge",
      "host",
      "macvlan",
      "null",
      "overlay"
    ]
    

    二、创建交互式容器

    关键参数: -it

    [root@localhost harbor]# docker run -it ubuntu /bin/bash
    root@1b0d5952d724:/# 
    

    使用第一个容器

    root@1b0d5952d724:/# hostname 
    1b0d5952d724
    root@1b0d5952d724:/# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    132: eth0@if133: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
        link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
           valid_lft forever preferred_lft forever
    root@1b0d5952d724:/# ps aux
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  0.0  0.2  18496  1996 pts/0    Ss   03:30   0:00 /bin/bash
    root        319  0.0  0.1  34388  1460 pts/0    R+   03:31   0:00 ps aux
    

    宿主机上看容器

    使用ctrl+p,ctrl+q退出容器,这样退出不会导致容器停止,暂时先不要想为什么。

    docker top 1b0d5952d724
    

    可以看到容器里正在运行的进程,进程号是112401,但在容器内部查看,进程号是1。看看cgroup和namespace的配置

    [root@localhost harbor]# cat /proc/112401/cgroup 
    11:blkio:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    10:cpuacct,cpu:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    9:devices:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    8:pids:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    7:cpuset:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    6:perf_event:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    5:hugetlb:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    4:freezer:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    3:net_prio,net_cls:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    2:memory:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    1:name=systemd:/docker/1b0d5952d7247fe5dc8302db67429974a7264c49f9d25d10077cc0fadc1ff72a
    
    [root@localhost ~]# ls -l /proc/112401/ns/
    总用量 0
    lrwxrwxrwx. 1 root root 0 6月  29 11:49 ipc -> ipc:[4026533171]
    lrwxrwxrwx. 1 root root 0 6月  29 11:49 mnt -> mnt:[4026533169]
    lrwxrwxrwx. 1 root root 0 6月  29 11:30 net -> net:[4026533174]
    lrwxrwxrwx. 1 root root 0 6月  29 11:49 pid -> pid:[4026533172]
    lrwxrwxrwx. 1 root root 0 6月  29 11:49 user -> user:[4026531837]
    lrwxrwxrwx. 1 root root 0 6月  29 11:49 uts -> uts:[4026533170]
    
    

    二、创建守护式容器

    关键参数: -d

    [root@localhost ~]# docker run -itd -P httpbin
    dc551548f6116f7fd5b315c8a954c6f715dd9b66ac71dc64395c07e7ccb60a05
    [root@localhost ~]# docker ps -l
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
    dc551548f611        httpbin             "gunicorn -b 0.0.0.0…"   3 seconds ago       Up 3 seconds        0.0.0.0:32771->80/tcp   peaceful_joliot
    [root@localhost ~]# curl http://127.0.0.1:32771/anything
    {
      "args": {}, 
      "data": "", 
      "files": {}, 
      "form": {}, 
      "headers": {
        "Accept": "*/*", 
        "Host": "127.0.0.1:32771", 
        "User-Agent": "curl/7.29.0"
      }, 
      "json": null, 
      "method": "GET", 
      "origin": "172.17.0.1", 
      "url": "http://127.0.0.1:32771/anything"
    }
    

    在容器内部运行进程

    [root@localhost ~]# docker exec dc551548f611 date
    Sat Jun 29 06:04:24 UTC 2019
    [root@localhost ~]# docker exec dc551548f611 hostname
    dc551548f611
    

    停止守护式容器

    # 发送SIGTERM信号
    [root@localhost ~]# docker stop dc551548f611
    # 发送SIGKILL信号
    [root@localhost ~]# docker kill dc551548f611
    

    深入容器

    [root@localhost ~]# docker inspect --format '{{ .State.Running}}' dc551548f611
    true
    [root@localhost ~]# docker inspect --format '{{ .Image}}' dc551548f611
    sha256:305d6a750a4ee5d91da03ca1e26f94aa5044cc5c7b0cd24ac79ca53bb9539a39
    

    删除容器

    [root@localhost ~]# docker rm dc551548f611
    Error response from daemon: You cannot remove a running container......
    [root@localhost ~]# docker rm -f dc551548f611
    dc551548f611
    [root@localhost ~]# docker rm -f `docker ps -aq`
    b21b36b78fb0
    c67cf83e002b
    4b291ac42e5e
    1b0d5952d724
    183b9371b908
    91427f4f49fa
    3ad3a55e612c
    

    容器命名

    三种方式,短格式只要可以唯一确认一个容器即可。

    • 长格式
      b11607e88fe79e93b93ad95550fcad38e41aec7bb34d3eb640a6bd2ee73e1859
    • 短格式
      b11607e88
    • 文本
      nginx-web

    Docker统计信息

    CONTAINER ID        NAME                     CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
    38a9fde684a6        nginx                    0.00%               1.496MiB / 972.6MiB   0.15%               656B / 0B           5.02MB / 0B         2
    83d52f188e7a        harbor-jobservice        0.09%               6.246MiB / 972.6MiB   0.64%               69kB / 810kB        36.1MB / 0B         8
    4c752b0054f1        harbor-portal            0.00%               1.395MiB / 972.6MiB   0.14%               3.69kB / 7.31kB     3.11MB / 0B         2
    9044544afa43        harbor-core              0.00%               8.539MiB / 972.6MiB   0.88%               48.5kB / 37.2kB     46.9MB / 0B         8
    61419c0a43ae        registry                 0.00%               6.539MiB / 972.6MiB   0.67%               8.74kB / 10.4kB     33.3MB / 0B         7
    db25076d56ad        harbor-db                0.06%               5.824MiB / 972.6MiB   0.60%               7.59kB / 12.8kB     25.4MB / 256kB      10
    8df23e5f7cf4        redis                    0.27%               1.758MiB / 972.6MiB   0.18%               810kB / 65.8kB      6.23MB / 0B         5
    f56e5de493dc        registryctl              0.00%               1.539MiB / 972.6MiB   0.16%               6.7kB / 4.41kB      9.68MB / 0B         5
    a38569a80146        harbor-log               2.97%               1.949MiB / 972.6MiB   0.20%               36.7kB / 5.87kB     4.68MB / 16.4kB     11
    ce3c7d3d3633        mystifying_brahmagupta   0.00%               404KiB / 972.6MiB     0.04%               656B / 0B           188kB / 0B          1
    

    相关文章

      网友评论

        本文标题:Docker入门

        本文链接:https://www.haomeiwen.com/subject/bqgucctx.html