zoukankan      html  css  js  c++  java
  • 第一天docker入门

    【01 入门】

      docker 最核心为三部分组成 镜像,仓库和容器

      镜像:一个只读的模板

      仓库:代码仓库,镜像的集合

      容器:镜像的实例化进程

    我们可以这样理解 容器就是一个沙箱,docker利用容器运行和隔离应用,每个容器之间都是彼此独立的

    第一次使用docker 

    [1]查看版本

    root@SSS:/data# docker version
    Client:
     Version:      1.13.1
     API version:  1.26
     Go version:   go1.7.4
     Git commit:   092cba3
     Built:        Thu Sep  7 17:09:45 2017
     OS/Arch:      linux/amd64
    
    Server:
     Version:      1.13.1
     API version:  1.26 (minimum version 1.12)
     Go version:   go1.7.4
     Git commit:   092cba3
     Built:        Thu Sep  7 17:09:45 2017
     OS/Arch:      linux/amd64
     Experimental: false

    docker 由客户端和服务器组成

    [2]使用镜像

    ##查看本地镜像
    root@SSS:/data# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              16.04               f975c5035748        3 weeks ago         112 MB
    ##这里我们有一个Ubuntu 16.04 镜像
    

    我们还可以获取其他镜像 如果不加参数 默认会去 docker hub 里面拉取 你可以指定远程的docker源 这个很pip yum 很像

    root@SSS:/data# docker pull ubuntu:15.04
    15.04: Pulling from library/ubuntu
    9502adfba7f1: Pull complete 
    4332ffb06e4b: Pull complete 
    2f937cc07b5f: Pull complete 
    a3ed95caeb02: Pull complete 
    Digest: sha256:2fb27e433b3ecccea2a14e794875b086711f5d49953ef173d8a03e8707f1510f
    Status: Downloaded newer image for ubuntu:15.04
    root@SSS:/data# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              16.04               f975c5035748        3 weeks ago         112 MB
    ubuntu              15.04               d1b55fd07600        2 years ago         131 MB
    

    这里我们就有两个镜像啦

    当然我们可以执行远程的源

    root@SSS:/data# docker pull hub.c.163.com/public/ubuntu:14.04
    14.04: Pulling from public/ubuntu
    f4ab0b34ba6a: Pull complete 
    2f0787dc0bfe: Pull complete 
    54c427d77362: Pull complete 
    51e87d5424ff: Pull complete 
    5dfa314e7290: Pull complete 
    a3ed95caeb02: Pull complete 
    Digest: sha256:ffc2fc66f8e0bfa4b417b817054d3ebec130c8db44342b8fa394e25779633257
    Status: Downloaded newer image for hub.c.163.com/public/ubuntu:14.04
    root@SSS:/data# 
    

    这里演示的是从163的源 下载镜像

    docket tag  可以一个docker镜像增加一个标签 实际上还是一个镜像 但是新建一个快捷名称

    root@SSS:/data# docker tag ubuntu:15.04 test:15.04
    root@SSS:/data# docker images
    REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
    ubuntu                        16.04               f975c5035748        3 weeks ago         112 MB
    hub.c.163.com/public/ubuntu   14.04               2fe5c4bba1f9        2 years ago         237 MB
    ubuntu                        15.04               d1b55fd07600        2 years ago         131 MB
    test                          15.04               d1b55fd07600        2 years ago         131 MB
    

    docker inspect 可以列出镜像的详细信息

    root@SSS:/data# docker inspect ubuntu:15.04
    [
        {
            "Id": "sha256:d1b55fd07600b2e26d667434f414beee12b0771dfd4a2c7b5ed6f2fc9e683b43",
            "RepoTags": [
                "test:15.04",
                "ubuntu:15.04"
            ],
            "RepoDigests": [
                "ubuntu@sha256:2fb27e433b3ecccea2a14e794875b086711f5d49953ef173d8a03e8707f1510f"
            ],
            "Parent": "",
            "Comment": "",
            "Created": "2016-01-26T17:48:34.465253028Z",
            "Container": "cc20825e9e02f79fe62f1b08bc30aea4299dbcd77ad0da58b00dec38aba7334a",
            "ContainerConfig": {
                "Hostname": "d2d404286fc4",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": null,
                "Cmd": [
                    "/bin/sh",
                    "-c",
                    "#(nop) CMD ["/bin/bash"]"
                ],
                "Image": "4913eece27c087d06635d32b98c50464b2f1d17bba86be7d4616738f1cfef0af",
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": null
            },
            "DockerVersion": "1.8.3",
            "Author": "",
            "Config": {
                "Hostname": "d2d404286fc4",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": null,
                "Cmd": [
                    "/bin/bash"
                ],
                "Image": "4913eece27c087d06635d32b98c50464b2f1d17bba86be7d4616738f1cfef0af",
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": null
            },
            "Architecture": "amd64",
            "Os": "linux",
            "Size": 131299498,
            "VirtualSize": 131299498,
            "GraphDriver": {
                "Name": "aufs",
                "Data": null
            },
            "RootFS": {
                "Type": "layers",
                "Layers": [
                    "sha256:3cbe18655eb617bf6a146dbd75a63f33c191bf8c7761bd6a8d68d53549af334b",
                    "sha256:84cc3d400b0d610447fbdea63436bad60fb8361493a32db380bd5c5a79f92ef4",
                    "sha256:ed58a6b8d8d6a4e2ecb4da7d1bf17ae8006dac65917c6a050109ef0a5d7199e6",
                    "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
                ]
            }
        }
    ]
    r
    

    这里docker会返回一个字典

    用-f 参数就可以获取其中一个

    root@SSS:/data# docker inspect ubuntu:15.04 -f {{".Id"}}
    sha256:d1b55fd07600b2e26d667434f414beee12b0771dfd4a2c7b5ed6f2fc9e683b43
    

    用docker history 可以查看镜像历史

    root@SSS:/data# docker history ubuntu:15.04
    IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
    d1b55fd07600        2 years ago         /bin/sh -c #(nop) CMD ["/bin/bash"]             0 B                 
    <missing>           2 years ago         /bin/sh -c sed -i 's/^#s*(deb.*universe...   1.88 kB             
    <missing>           2 years ago         /bin/sh -c echo '#!/bin/sh' > /usr/sbin/po...   701 B               
    <missing>           2 years ago         /bin/sh -c #(nop) ADD file:3f4708cf445dc1b...   131 MB  
    

      

    [3] 搜索镜像

    使用docker serch 可以搜索镜像名称  

    支持的参数有:

      --automated=ture|false 仅显示 自动创建的镜像,默认为否

      --no-trunc=ture|false 输出信息不截断显示 默认为否

       -s 指定评分

    root@SSS:/data# docker search --automated -s 3 nginx
    Flag --automated has been deprecated, use --filter=automated=true instead
    Flag --stars has been deprecated, use --filter=stars=3 instead
    NAME                                                   DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker c...   1300                 [OK]
    richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable ...   540                  [OK]
    jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as...   338                  [OK]
    webdevops/php-nginx                                    Nginx with PHP-FPM                              97                   [OK]
    zabbix/zabbix-web-nginx-mysql                          Zabbix frontend based on Nginx web-server ...   48                   [OK]
    bitnami/nginx                                          Bitnami nginx Docker Image                      45                   [OK]
    1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5   ubuntu-16-nginx-php-phpmyadmin-mysql-5          31                   [OK]
    tobi312/rpi-nginx                                      NGINX on Raspberry Pi / armhf                   19                   [OK]
    wodby/drupal-nginx                                     Nginx for Drupal container image                9                    [OK]
    webdevops/nginx                                        Nginx container                                 8                    [OK]
    blacklabelops/nginx                                    Dockerized Nginx Reverse Proxy Server.          8                    [OK]
    nginxdemos/hello                                       NGINX webserver that serves a simple page ...   5                    [OK]
    1science/nginx                                         Nginx Docker images that include Consul Te...   4                    [OK]
    

     [4] 删除镜像

      docker rmi  指定tag 或者 ID 

       -f 强制删除正在运行的容器

    [5] 创建镜像

      

  • 相关阅读:
    JavaScript学习之路-语法
    JavaScript学习之路-语法
    JavaScript学习之路-为什么要学习JavaScript语法
    JavaScript学习之路-为什么要学习JavaScript语法
    net4:Panel动态添加控件及隐藏,Table动态创建表格
    net1:DateTime,Application与Session,
    C#精髓第四讲 GridView 72般绝技
    J2ME开发基本语法及小实例专题
    net6:创建Membership对象数据源的代码
    net4:GridView中的重要操作(添加checkbox,以及鼠标动作,行颜色等)
  • 原文地址:https://www.cnblogs.com/nerdlerss/p/8710068.html
Copyright © 2011-2022 走看看