array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Docker笔记6:Docker 常见命令及镜像管理 - 爱码网

 目  录

 

 

docker version 命令

[root@docker ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.4
 API version:       1.40
 Go version:        go1.12.10
 Git commit:        9013bf583a
 Built:             Fri Oct 18 15:52:22 2019
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

      可以看到 此处只有 Docker Client 的版本信息,同时显示  Cannot connect to the Docker daemon(Docker Server端)

      那么将 Docker 服务启动起来,再次查看 Docker 版本:

[root@docker ~]# systemctl start docker

      将 Docker 服务设置为开机自启动:

[root@docker ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

 

      查看 Docker 版本:

[root@docker ~]# docker version
Client: Docker Engine - Community Version: 19.03.4 API version: 1.40 Go version: go1.12.10 Git commit: 9013bf583a Built: Fri Oct 18 15:52:22 2019 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.4 API version: 1.40 (minimum version 1.12) Go version: go1.12.10 Git commit: 9013bf583a Built: Fri Oct 18 15:50:54 2019 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.10 GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339 runc: Version: 1.0.0-rc8+dev GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657 docker-init: Version: 0.18.0 GitCommit: fec3683

 

docker info 命令

[root@docker ~]# docker info
Client: Debug Mode:
false Server: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 19.03.4 Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339 runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657 init version: fec3683 Security Options: seccomp Profile: default Kernel Version: 3.10.0-957.el7.x86_64 Operating System: CentOS Linux 7 (Core) OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 1.777GiB Name: docker01 ID: IEX4:P4JT:FBHF:D3WZ:SY2U:SRHT:MXBN:U2RA:YFGI:V6U4:NJO6:KFFX Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false

 

 

 

二、Docker 镜像管理

 

[root@docker ~]# docker image  ( image 后加一个空格,再按2次 Tab键)
build     history     import    inspect     load      ls       
prune     pull        push      rm          save      tag 

 

 

 搜索镜像: docker search 镜像名

[root@docker ~]# docker search nginx
NAME                            DESCRIPTION                                     STARS     OFFICIAL    AUTOMATED
nginx                           Official build of Nginx.                        12128     [OK]        
jwilder/nginx-proxy             Automated Nginx reverse proxy for docker con…   1679                  [OK]
richarvey/nginx-php-fpm         Container running Nginx + PHP-FPM capable of…   744                   [OK]
linuxserver/nginx               An Nginx container, brought to you by LinuxS…   79                        
bitnami/nginx                   Bitnami nginx Docker Image                      72                    [OK]
tiangolo/nginx-rtmp             Docker image with Nginx using the nginx-rtmp…   58                    [OK]
nginxdemos/hello                NGINX webserver that serves a simple page co…   31                    [OK]
jlesage/nginx-proxy-manager     Docker container for Nginx Proxy Manager        27                    [OK]
jc21/nginx-proxy-manager        Docker container for managing Nginx proxy ho…   26                    
nginx/nginx-ingress             NGINX Ingress Controller for Kubernetes         22                    
privatebin/nginx-fpm-alpine     PrivateBin running on an Nginx, php-fpm & Al…   18                    [OK]
schmunk42/nginx-redirect        A very simple container to redirect HTTP tra…   17                    [OK]
crunchgeek/nginx-pagespeed      Nginx with PageSpeed + GEO IP + VTS + more_s…   14                                  
blacklabelops/nginx             Dockerized Nginx Reverse Proxy Server.          12                    [OK]

 

选镜像的建议:
      1. 优先考虑官方
      2. stars 数量多

 

获取镜像:docker pull 镜像名

      镜像加速器:阿里云加速器,daocloud加速器,中科大加速器,Docker中国官方镜像加速(https://registry.docker-cn.com)

      docker pull centos:6.8 (没有指定版本,默认会下载最新版)
      docker pull daocloud.io/huangzhichong/alpine-cn:latest

[root@docker ~]# docker pull nginx:1.16.0
1.16.0: Pulling from library/nginx
9fc222b64b0a: Pull complete 
30e9fc7d9c5b: Pull complete 
4b3a8aeaa40e: Pull complete 
Digest: sha256:3e373fd5b8d41baeddc24be311c5c6929425c04cabf893b874ac09b72a798010
Status: Downloaded newer image for nginx:1.16.0
docker.io/library/nginx:1.16.0
[root@docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx 1.16.0 ae893c58d83f 2 months ago 109MB

 

查看镜像列表:docker images  docker image ls

      查看已拉取下来的 Docker 镜像,有两种方法:

[root@docker ~]# docker image ls
REPOSITORY              TAG           IMAGE ID            CREATED             SIZE
nginx                   1.16.0        ae893c58d83f        2 months ago        109MB

[root@docker ~]# docker images
REPOSITORY              TAG           IMAGE ID            CREATED             SIZE
nginx                   1.16.0        ae893c58d83f        2 months ago        109MB

 

 

查看镜像的详细属性:docker image inspect 镜像名

[root@docker ~]# docker image inspect nginx:latest
[
    {
        "Id": "sha256:540a289bab6cb1bf880086a9b803cf0c4cefe38cbb5cdefa199b69614525199f",
        "RepoTags": [
            "nginx:latest"
        ],
        "RepoDigests": [
            "nginx@sha256:922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2019-10-23T00:26:03.830480202Z",
        "Container": "77b8bfc5e16274066a5d4c14915ea5e7387c062f8540cd970c54e9b6e38b1011",
        "ContainerConfig": {
            "Hostname": "77b8bfc5e162",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.17.5",
                "NJS_VERSION=0.3.6",
                "PKG_RELEASE=1~buster"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"nginx\" \"-g\" \"daemon off;\"]"
            ],
            "ArgsEscaped": true,
            "Image": "sha256:2e2fa75c52fdfe182fb66455d6db04849c683ef01d14a526211ba37831c66791",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
            },
            "StopSignal": "SIGTERM"
        },
        "DockerVersion": "18.06.1-ce",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.17.5",
                "NJS_VERSION=0.3.6",
                "PKG_RELEASE=1~buster"
            ],
            "Cmd": [
                "nginx",
                "-g",
                "daemon off;"
            ],
            "ArgsEscaped": true,
            "Image": "sha256:2e2fa75c52fdfe182fb66455d6db04849c683ef01d14a526211ba37831c66791",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
            },
            "StopSignal": "SIGTERM"
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 126215561,
        "VirtualSize": 126215561,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/b866a45f1e1d110b17bbc0387832373b8605e9e171a583ea35f6f3c8e5440a9f/diff:/var/lib/docker/overlay2/0e300469a4c4e8faaca819a513171cb6ad27318c36f716b92ff1974bea68387c/diff",
                "MergedDir": "/var/lib/docker/overlay2/58d7b5c004af4f43a39914ca892293b441b2395305034408743a5e368826e9fc/merged",
                "UpperDir": "/var/lib/docker/overlay2/58d7b5c004af4f43a39914ca892293b441b2395305034408743a5e368826e9fc/diff",
                "WorkDir": "/var/lib/docker/overlay2/58d7b5c004af4f43a39914ca892293b441b2395305034408743a5e368826e9fc/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:b67d19e65ef653823ed62a5835399c610a40e8205c16f839c5cc567954fcf594",
                "sha256:6eaad811af0237b78ba8b44a282d1564259d90007d628a032c5df7e3e2bbb613",
                "sha256:a89b8f05da3a2cbe459ef3fecfec8076fd0a7568db81f9164147b6f642e2dadf"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

 

 

 

删除镜像:docker rmi  或  docker image rm

      例如:docker image rm centos:latest

[root@docker ~]# docker rmi nginx:1.16.0
Untagged: nginx:1.16.0
Untagged: nginx@sha256:3e373fd5b8d41baeddc24be311c5c6929425c04cabf893b874ac09b72a798010
Deleted: sha256:ae893c58d83fe2bd391fbec97f5576c9a34fea55b4ee9daf15feb9620b14b226
Deleted: sha256:9987b8be475d96bc466b978b64b54af9e556884e78007caa19c065c6723f40e4
Deleted: sha256:5d7e4cc1668a0ce9764e7dad91cfbe594eea3a5b3ac6f4ec229d549cac20fff0
Deleted: sha256:8fa655db5360a336ddd0256f573e27975628668063732ef91f820d4770db737c

或者

[root@docker ~]# docker image rm nginx:1.16.0
Untagged: nginx:1.16.0
Untagged: nginx@sha256:3e373fd5b8d41baeddc24be311c5c6929425c04cabf893b874ac09b72a798010
Deleted: sha256:ae893c58d83fe2bd391fbec97f5576c9a34fea55b4ee9daf15feb9620b14b226
Deleted: sha256:9987b8be475d96bc466b978b64b54af9e556884e78007caa19c065c6723f40e4
Deleted: sha256:5d7e4cc1668a0ce9764e7dad91cfbe594eea3a5b3ac6f4ec229d549cac20fff0
Deleted: sha256:8fa655db5360a336ddd0256f573e27975628668063732ef91f820d4770db737c

 

备注:docker ps -a 查看容器,删除镜像前应先删除掉容器 docker rm CONTAINS_ID

 

导出镜像:docker save

 

[root@docker ~]# docker images
REPOSITORY                            TAG        IMAGE ID        CREATED          SIZE
nginx                                 latest     540a289bab6c    7 days ago       126MB
nginx                                 1.16.0     ae893c58d83f    2 months ago     109MB
daocloud.io/huangzhichong/alpine-cn   latest     e8289dcc1d4b    2 years ago      3.98MB
[root@docker ~]# docker save daocloud.io/huangzhichong/alpine-cn:latest > docker_alpine-cn.tar.gz
[root@docker ~]# ll
total 132652
-rw-------. 1 root root      1549 Jan 10  2019 anaconda-ks.cfg
-rw-r--r--. 1 root root   4241408 Oct 29 23:39 docker_alpine-cn.tar.gz

 

导入镜像:docker load

[root@docker ~]# docker load -i docker_alpine-cn.tar.gz 
60ab55d3379d: Loading layer [===========================================>]  4.226MB/4.226MB
78cd8c87ab42: Loading layer [===========================================>]  3.072kB/3.072kB
Loaded image: daocloud.io/huangzhichong/alpine-cn:latest
[root@docker
~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 540a289bab6c 7 days ago 126MB nginx 1.16.0 ae893c58d83f 2 months ago 109MB daocloud.io/huangzhichong/alpine-cn latest e8289dcc1d4b 2 years ago 3.98MB

 

给镜像打标签:docker tag

    docker tag 命令:标记本地镜像,将其归入某一仓库。

语法:

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

实例:

例如,Docker本地有一个 nginx 镜像:

[root@docker ~]# docker images
REPOSITORY              TAG         IMAGE ID          CREATED         SIZE
nginx                   latest      540a289bab6c      8 days ago      126MB

我们对 本地nginx镜像进行开发,开发了第一个版本,然后对该版本打标签,打完标签后会生成新的镜像:
    (也有人称之为 “硬链接”)

[root@docker ~]# docker tag nginx nginx:v1
[root@docker ~]# docker images
REPOSITORY              TAG         IMAGE ID          CREATED         SIZE
nginx                   latest      540a289bab6c      8 days ago      126MB
nginx                   v1          540a289bab6c      8 days ago      126MB

我们继续对 本地nginx进项进行开发,开发了第二个版本,继续打标签

[root@docker ~]# docker tag nginx nginx:v2
[root@docker ~]# docker images
REPOSITORY              TAG         IMAGE ID          CREATED         SIZE
nginx                   latest      540a289bab6c      8 days ago      126MB
nginx                   v1          540a289bab6c      8 days ago      126MB
nginx                   v2          540a289bab6c      8 days ago      126MB

以此类推,每开发一个版本打一个标签,如果以后想回滚版本,就可以使用指定标签的镜像来创建容器:

[root@docker ~]# docker run -itd nginx:v1

 

   

 

 

相关文章: