Docker基础命令
Docker基础命令操作
1)拉取一个镜像
1 [root@zabbix-c48 ~]# docker pull centos:7 #这边我已经有centos:7镜像,如果不加7tag会默认啦取latest 2 7: Pulling from library/centos 3 Digest: sha256:a799dd8a2ded4a83484bbae769d97655392b3f86533ceb7dd96bbac929809f3c 4 Status: Image is up to date for centos:7 #查看镜像 5 [root@zabbix-c48 ~]# docker images 6 REPOSITORY TAG IMAGE ID CREATED SIZE 7 centos 7 9f38484d220f 4 months ago 202MB 8 [root@zabbix-c48 ~]#
2)查询镜像作者信息
1 [root@zabbix-c48 ~]# docker inspect centos:7 #返回的是一个json格式的消息,如果只想要其中一项内容可以用参数-f来指定 docker inspect -f {{".Architecture"}} 2 [ 3 { 4 "Id": "sha256:9f38484d220fa527b1fb19747638497179500a1bed8bf0498eb788229229e6e1", 5 "RepoTags": [ 6 "centos:7" 7 ], 8 "RepoDigests": [ 9 "centos@sha256:a799dd8a2ded4a83484bbae769d97655392b3f86533ceb7dd96bbac929809f3c", 10 "centos@sha256:b5e66c4651870a1ad435cd75922fe2cb943c9e973a9673822d1414824a1d0475" 11 ], 12 "Parent": "", 13 "Comment": "", 14 "Created": "2019-03-14T21:19:53.361167852Z", 15 "Container": "958baf5225f586da9c70a21e911a0a875402dd22d83133d78b3b3aa6130e7892", 16 "ContainerConfig": { 17 "Hostname": "958baf5225f5", 18 "Domainname": "", 19 "User": "", 20 "AttachStdin": false, 21 "AttachStdout": false, 22 "AttachStderr": false, 23 "Tty": false, 24 "OpenStdin": false, 25 "StdinOnce": false, 26 "Env": [ 27 "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 28 ], 29 "Cmd": [ 30 "/bin/sh", 31 "-c", 32 "#(nop) ", 33 "CMD [\"/bin/bash\"]" 34 ], 35 "ArgsEscaped": true, 36 "Image": "sha256:294e8d8145287e70f07328cc09d840fad8980b801223321b983442f097aff0d8", 37 "Volumes": null, 38 "WorkingDir": "", 39 "Entrypoint": null, 40 "OnBuild": null, 41 "Labels": { 42 "org.label-schema.build-date": "20190305", 43 "org.label-schema.license": "GPLv2", 44 "org.label-schema.name": "CentOS Base Image", 45 "org.label-schema.schema-version": "1.0", 46 "org.label-schema.vendor": "CentOS" 47 } 48 }, 49 "DockerVersion": "18.06.1-ce", 50 "Author": "", 51 "Config": { 52 "Hostname": "", 53 "Domainname": "", 54 "User": "", 55 "AttachStdin": false, 56 "AttachStdout": false, 57 "AttachStderr": false, 58 "Tty": false, 59 "OpenStdin": false, 60 "StdinOnce": false, 61 "Env": [ 62 "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 63 ], 64 "Cmd": [ 65 "/bin/bash" 66 ], 67 "ArgsEscaped": true, 68 "Image": "sha256:294e8d8145287e70f07328cc09d840fad8980b801223321b983442f097aff0d8", 69 "Volumes": null, 70 "WorkingDir": "", 71 "Entrypoint": null, 72 "OnBuild": null, 73 "Labels": { 74 "org.label-schema.build-date": "20190305", 75 "org.label-schema.license": "GPLv2", 76 "org.label-schema.name": "CentOS Base Image", 77 "org.label-schema.schema-version": "1.0", 78 "org.label-schema.vendor": "CentOS" 79 } 80 }, 81 "Architecture": "amd64", 82 "Os": "linux", 83 "Size": 201782942, 84 "VirtualSize": 201782942, 85 "GraphDriver": { 86 "Data": { 87 "MergedDir": "/var/lib/docker/overlay2/2a7fc5b3c66b309dfc6a803a507395eacc8730d04a03dfa9ab61c30cedc3a441/merged", 88 "UpperDir": "/var/lib/docker/overlay2/2a7fc5b3c66b309dfc6a803a507395eacc8730d04a03dfa9ab61c30cedc3a441/diff", 89 "WorkDir": "/var/lib/docker/overlay2/2a7fc5b3c66b309dfc6a803a507395eacc8730d04a03dfa9ab61c30cedc3a441/work" 90 }, 91 "Name": "overlay2" 92 }, 93 "RootFS": { 94 "Type": "layers", 95 "Layers": [ 96 "sha256:d69483a6face4499acb974449d1303591fcbb5cdce5420f36f8a6607bda11854" 97 ] 98 }, 99 "Metadata": { 100 "LastTagTime": "0001-01-01T00:00:00Z" 101 } 102 } 103 ] 104 [root@zabbix-c48 ~]#
3)启动一个镜像
1 [root@zabbix-s41 docker]# docker run -it centos:7 /bin/bash 2 [root@f05102192941 /]# touch demo 3 [root@f05102192941 /]# exit
4)查询docker search
#search搜索命令 automated 显示自动创建的镜像,默认为否-s指定星级
1 [root@zabbix-s41 docker]# docker search --automated -s 3 nginx 2 Flag --automated has been deprecated, use --filter=is-automated=true instead 3 Flag --stars has been deprecated, use --filter=stars=3 instead 4 NAME DESCRIPTION STARS OFFICIAL AUTOMATED 5 jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1628 [OK] 6 richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 726 [OK] 7 bitnami/nginx Bitnami nginx Docker Image 69 [OK] 8 tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp… 49 [OK] 9 nginxdemos/hello NGINX webserver that serves a simple page co… 18 [OK] 10 jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 17 [OK] 11 schmunk42/nginx-redirect A very simple container to redirect HTTP tra… 17 [OK] 12 blacklabelops/nginx Dockerized Nginx Reverse Proxy Server. 12 [OK] 13 webdevops/nginx Nginx container 8 [OK] 14 sophos/nginx-vts-exporter Simple server that scrapes Nginx vts stats a… 5 [OK] 15 1science/nginx Nginx Docker images that include Consul Temp… 4 [OK] 16 mailu/nginx Mailu nginx frontend 3 [OK] 17 [root@zabbix-s41 docker]#
5)删除镜像
1 [root@zabbix-s41 docker]# docker images 2 REPOSITORY TAG IMAGE ID CREATED SIZE 3 demo latest ab22aa56722d 2 hours ago 202MB 4 centos 7 9f38484d220f 4 months ago 202MB 5 [root@zabbix-s41 docker]# docker rmi demo:latest 6 Untagged: demo:latest 7 Deleted: sha256:ab22aa56722d98a1d13774ec887019a863b597a64bea78d117e9d99761cde6da 8 Deleted: sha256:679828c74ff7bb7531b6300ac56622661e5e590132e30b10dcb038e7fd350985 9 [root@zabbix-s41 docker]# docker images 10 REPOSITORY TAG IMAGE ID CREATED SIZE 11 centos 7 9f38484d220f 4 months ago 202MB 12 [root@zabbix-s41 docker]#
注释:docker rmi IMAGE/ID,如果一个镜像的id一样的,tag不一样,那么删除tag只会删除一个tag删除不了这个镜像,如果根据镜像的id删除则会打印出删除的各层信息
6)创建镜像
创建镜像的有三种方法
- 基于已有的镜像的容器创建
- 基于本地模板导入
- 基于Dockerfile创建
命令格式:docker commit [options] container [repository[:tag]]#-a 作者信息-c 提交的时候指定dockerfile指令-m 提交信息 -p提交时暂停容器运行
6.1)基于镜像容器创建
1 [root@zabbix-s41 docker]# docker run -it centos:7 /bin/bash 2 [root@3c652d20d0ad /]# touch demo 3 [root@3c652d20d0ad /]# exit 4 exit 5 [root@zabbix-s41 docker]# docker commit -m "add a new file" -a "king" 3c652d20d0ad demo:0.1 6 sha256:2d61e43d1460e91ae66cc0762be35732b061e48d7d95bd5102ad67270a26f382 7 [root@zabbix-s41 docker]# docker images 8 REPOSITORY TAG IMAGE ID CREATED SIZE 9 demo 0.1 070ef0155428 4 seconds ago 202MB 10 demo latest 2d61e43d1460 About a minute ago 202MB 11 centos 7 9f38484d220f 4 months ago 202MB 12 [root@zabbix-s41 docker]#
6.2)基于本地模块导入
直接从一个操作系统模板文件导入一个镜像,用docker import [options] file |url| -[repository[:tag]],要直接导入一个镜像,可以用openVZ提供的模板来创建
7)存出和载入镜像
docker save -o centos.tar centos:7 docker load --input centos.tar 或者docker load < centos.tar