1. 程式人生 > >第一天docker入門

第一天docker入門

poi zed dac ever 實例化 ble true ade lag

【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] 創建鏡像

  

第一天docker入門