docker 镜像使用
获取镜像
命令格式
docker pull image[:TAG]
例子
docker pull centos:77: Pulling from library/centos
Digest: sha256:c73f515d06b0fa07bb18d8202035e739a494ce760aa73129f60f4bf2bd22b407
Status: Image is up to date for centos:7
docker.io/library/centos:7
如不指名TAG,默认选择latest
docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
125a6e411906: Pull complete
Digest: sha256:26c68657ccce2cb0a31b330cb0be2b5e108d467f641c62e13ab40cbec258c68d
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
查看镜像信息
images列出镜像
docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest d2e4e1f51132 11 days ago 77.8MB
docker101tutorial latest 122430998e59 2 months ago 28.8MB
openjdk latest 2f765403878f 2 months ago 471MB
openzipkin/zipkin latest 8911130146d1 4 months ago 155MB
alpine/git latest c6b70534b534 5 months ago 27.4MB
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
centos 7 eeb6ee3f44bd 7 months ago 204MB
rabbitmq 3.7.7-management 2888deb59dfc 3 years ago 149MB
tag创建镜像标签
λ docker tag rabbitmq:3.7.7-management mq:1.0
λ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest d2e4e1f51132 11 days ago 77.8MB
docker101tutorial latest 122430998e59 2 months ago 28.8MB
openjdk latest 2f765403878f 2 months ago 471MB
openzipkin/zipkin latest 8911130146d1 4 months ago 155MB
alpine/git latest c6b70534b534 5 months ago 27.4MB
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
centos 7 eeb6ee3f44bd 7 months ago 204MB
mq 1.0 2888deb59dfc 3 years ago 149MB
rabbitmq 3.7.7-management 2888deb59dfc 3 years ago 149MB
inspect 查看详情信息
docker inspect mq:1.0
[{"Id": "sha256:2888deb59dfc1aae137a7c9a313c9cf8ada42dbf996345c5f433c1b9ecbae138","RepoTags": ["mq:1.0","rabbitmq:3.7.7-management"],"RepoDigests": ["rabbitmq@sha256:a4ae5d7965167e593299bbc12298614f4f6e339492be21f245592994128047b9"],"Parent": "","Comment": "","Created": "2018-09-05T05:22:47.074816475Z","Container": "fd491d930f8f2d0ad555c7444b102e53f4374899bea0f5747cc5709dd106ad02","ContainerConfig": {"Hostname": "fd491d930f8f","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {"15671/tcp": {},"15672/tcp": {},"25672/tcp": {},"4369/tcp": {},"5671/tcp": {},"5672/tcp": {}},"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": ["PATH=/usr/lib/rabbitmq/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","GOSU_VERSION=1.10","RABBITMQ_LOGS=-","RABBITMQ_SASL_LOGS=-","RABBITMQ_GPG_KEY=0A9AF2115F4687BD29803A206B73A36E6026DFCA","RABBITMQ_VERSION=3.7.7","RABBITMQ_GITHUB_TAG=v3.7.7","RABBITMQ_DEBIAN_VERSION=3.7.7-1","LANG=C.UTF-8","HOME=/var/lib/rabbitmq"],"Cmd": ["/bin/sh","-c","#(nop) ","EXPOSE 15671/tcp 15672/tcp"],"ArgsEscaped": true,"Image": "sha256:1769048f26617292d481e131b8c3a0b9d8b3b40c6f355afe529a20bb81827bfa","Volumes": {"/var/lib/rabbitmq": {}},"WorkingDir": "","Entrypoint": ["docker-entrypoint.sh"],"OnBuild": [],"Labels": {}},"DockerVersion": "17.06.2-ce","Author": "","Config": {"Hostname": "","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {"15671/tcp": {},"15672/tcp": {},"25672/tcp": {},"4369/tcp": {},"5671/tcp": {},"5672/tcp": {}},"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": ["PATH=/usr/lib/rabbitmq/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","GOSU_VERSION=1.10","RABBITMQ_LOGS=-","RABBITMQ_SASL_LOGS=-","RABBITMQ_GPG_KEY=0A9AF2115F4687BD29803A206B73A36E6026DFCA","RABBITMQ_VERSION=3.7.7","RABBITMQ_GITHUB_TAG=v3.7.7","RABBITMQ_DEBIAN_VERSION=3.7.7-1","LANG=C.UTF-8","HOME=/var/lib/rabbitmq"],"Cmd": ["rabbitmq-server"],"ArgsEscaped": true,"Image": "sha256:1769048f26617292d481e131b8c3a0b9d8b3b40c6f355afe529a20bb81827bfa","Volumes": {"/var/lib/rabbitmq": {}},"WorkingDir": "","Entrypoint": ["docker-entrypoint.sh"],"OnBuild": [],"Labels": null},"Architecture": "amd64","Os": "linux","Size": 148956632,"VirtualSize": 148956632,"GraphDriver": {"Data": {"LowerDir": "/var/lib/docker/overlay2/d80ffe57d33707a198fb2a299a7ef0d7ca0ccfa8c1b26b010188ae03ca487045/diff:/var/lib/docker/overlay2/b34c618a5bb8432e37fda7479b8117d31b8642a8f830ca44ce3e0c31e60e8729/diff:/var/lib/docker/overlay2/b961b0e1455dfe7dae9697b68ad9da2e5520b9f95c2fcb51e943402cb18da6e1/diff:/var/lib/docker/overlay2/782d2efcd86a03dffe9d6f97d21cc113d7818320493e348adbfd55bb64efaef9/diff:/var/lib/docker/overlay2/abd598ec49be81e2b92a1a78f1126f3ae7809afaa1cf252c1f298d2a9b9fa16d/diff:/var/lib/docker/overlay2/1feff802d1ef4c6ad7dee2f410f0e9997df63f08bda988a7d3a6f05f5932afe8/diff:/var/lib/docker/overlay2/d1be67f5c6d85c5d52e5dbb9c327edd827a24d39a0136bea8ff37841880be671/diff:/var/lib/docker/overlay2/118e1ebff837f378b31e6ca0691fe45b11400b02f8f5b5c163d3ec93ebc55bb0/diff:/var/lib/docker/overlay2/712cb9e856d46d15bb3becfd5fefa1c5ae9d95e0ce7934ecf6f197795eae4738/diff:/var/lib/docker/overlay2/1d8f976dccdc10195036430edf96c967e60078b5e804328b950b0f08b54a610f/diff:/var/lib/docker/overlay2/0fb6875a2f2242b5a03cd870754b612098e9c75425b673d1e53d223dd5f6be03/diff:/var/lib/docker/overlay2/6433cb1105ef9a6a18da1523bcef3d6003cdfac49f57afe4e8afda0e937b89af/diff:/var/lib/docker/overlay2/f370ca029fa4d6f29df1a2c48d5dc64f8e5f10e1cb845559b690bdfead4e1f36/diff","MergedDir": "/var/lib/docker/overlay2/8085d24f013e063c100a8b48c2333ef5ffb0b100f684767b9318b06f002db2db/merged","UpperDir": "/var/lib/docker/overlay2/8085d24f013e063c100a8b48c2333ef5ffb0b100f684767b9318b06f002db2db/diff","WorkDir": "/var/lib/docker/overlay2/8085d24f013e063c100a8b48c2333ef5ffb0b100f684767b9318b06f002db2db/work"},"Name": "overlay2"},"RootFS": {"Type": "layers","Layers": ["sha256:8b15606a9e3e430cb7ba739fde2fbb3734a19f8a59a825ffa877f9be49059817","sha256:d5b2143e2e4ac99b9ffbef47d696d38cfd5584a002def7fa6c0f18ee0f3ede54","sha256:f3f9e1d2a4f99b50068da48ca19dc716bf8ccafd81e6e1873c8fed2d365a30a5","sha256:bab4623573a97f458ceeaa225a8f815d614c6cd61ff354eb8e4642c4ebfab1de","sha256:5720f35dfcd291c96299c1ad8994b1710160426533f474d88a83bbf3762ea962","sha256:eb992dd59df2befbfa9f6a83c5d07694f46ce9d783cb044ecfe0f7b9ffbb927e","sha256:3981fd8cc5c34ec9ace3c2ec470eed7c49dd550e524c7298639231b6df86d1ca","sha256:0bf6cf1eaa3588e9dc709dc45f88496f71bdf7baa761a9cba26a39fafac621ed","sha256:a21e8202381447b3515130a32b468f601c1667dcc3cb66695cd3b36b351dcc76","sha256:3fe901ca204aeaed3b06c188b50c4bd7c888b9e17cdf2a91ac0c128aa734db53","sha256:7537d4cef8545c9615a7da65c0500aeea099de244ac27a51eb2ead139bde4729","sha256:26d175ec942827288ca8570fe234aac7b670e473c1f1f9b970075e410b3dca7e","sha256:5a6b7cb7420ffc12e1eda22aae559ea06214684c748bb3e190364a822d19ffb0","sha256:b383b216875f6ee7f5a64fce8cec4d6f3a022a9fab80159ef8c932c5e692aa83"]},"Metadata": {"LastTagTime": "2022-05-11T12:38:47.0798411Z"}}
]
过滤key
docker inspect mq:1.0 -f{{.Id}}
sha256:2888deb59dfc1aae137a7c9a313c9cf8ada42dbf996345c5f433c1b9ecbae138
查看镜像层级
docker history centos:7IMAGE CREATED CREATED BY SIZE COMMENT
eeb6ee3f44bd 7 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 7 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> 7 months ago /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4… 204MB
搜索镜像
搜索收藏数超过10的镜像
docker search nginx -f=stars=10NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 16757 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 165
bitnami/nginx Bitnami nginx Docker Image 125 [OK]
ubuntu/nginx Nginx, a high-performance reverse proxy & we… 48
bitnami/nginx-ingress-controller Bitnami Docker Image for NGINX Ingress Contr… 18 [OK]
rancher/nginx-ingress-controller 10
删除和清理镜像
删除命令
docker rmi 标签或者ID
λ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest d2e4e1f51132 11 days ago 77.8MB
docker101tutorial latest 122430998e59 2 months ago 28.8MB
openjdk latest 2f765403878f 2 months ago 471MB
openzipkin/zipkin latest 8911130146d1 4 months ago 155MB
alpine/git latest c6b70534b534 5 months ago 27.4MB
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
centos 7 eeb6ee3f44bd 7 months ago 204MB
mq 1.0 2888deb59dfc 3 years ago 149MB
rabbitmq 3.7.7-management 2888deb59dfc 3 years ago 149MBλ docker rmi rabbitmq:3.7.7-management
Untagged: rabbitmq:3.7.7-management
Untagged: rabbitmq@sha256:a4ae5d7965167e593299bbc12298614f4f6e339492be21f245592994128047b9λ docker rmi d2e4e1f51132
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:26c68657ccce2cb0a31b330cb0be2b5e108d467f641c62e13ab40cbec258c68d
Deleted: sha256:d2e4e1f511320dfb2d0baff2468fcf0526998b73fe10c8890b4684bb7ef8290f
Deleted: sha256:e59fc94956120a6c7629f085027578e6357b48061d45714107e79f04a81a6f0cλ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker101tutorial latest 122430998e59 2 months ago 28.8MB
openjdk latest 2f765403878f 2 months ago 471MB
openzipkin/zipkin latest 8911130146d1 4 months ago 155MB
alpine/git latest c6b70534b534 5 months ago 27.4MB
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
centos 7 eeb6ee3f44bd 7 months ago 204MB
mq 1.0 2888deb59dfc 3 years ago 149MB
清理镜像
docker images prune
创建镜像
常见两种
- 基于已有容器创建,commit方式
λ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTSNAMES
7b6add071f0b 2888deb59dfc "docker-entrypoint.s…" 5 weeks ago Up 1 second 4369/tcp, 5671/tcp, 0.0.0.0:5672-> 5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp rabbitmqλ docker commit -m "创建mq新镜像" 7b6add071f0b mq:2.0
sha256:bb7653f2856b5296bad4be567280003dec4b2814e820cc35c8117f023b303a13λ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mq 2.0 bb7653f2856b 5 seconds ago 149MB
docker101tutorial latest 122430998e59 2 months ago 28.8MB
openjdk latest 2f765403878f 2 months ago 471MB
openzipkin/zipkin latest 8911130146d1 4 months ago 155MB
alpine/git latest c6b70534b534 5 months ago 27.4MB
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
centos 7 eeb6ee3f44bd 7 months ago 204MB
mq 1.0 2888deb59dfc 3 years ago 149MB
- 基于Dockerfile创建
新建文件Dockerfile
FROM nginx
RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html
执行创建命令
λ docker build -t nginx:v_test .
[+] Building 19.3s (4/5)
[+] Building 19.4s (4/5)
[+] Building 19.5s (6/6) FINISHED=> [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 133B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/nginx:latest 5.2s => [1/2] FROM docker.io/library/nginx@sha256:19da26bd6ef0468ac8ef5c03f01ce1569a4dbfb82d4d7b7ffbd7aed16ad3eb46 13.8s => => resolve docker.io/library/nginx@sha256:19da26bd6ef0468ac8ef5c03f01ce1569a4dbfb82d4d7b7ffbd7aed16ad3eb46 0.0s => => sha256:7425d3a7c478efbeb75f0937060117343a9a510f72f5f7ad9f14b1501a36940c 7.66kB / 7.66kB 0.0s => => sha256:214ca5fb90323fe769c63a12af092f2572bf1c6b300263e09883909fc865d260 31.38MB / 31.38MB 8.3s => => sha256:f0156b83954cc6c71cb4b4e662cc79c0154a67507fc7b28107a10afa3b6901ab 25.35MB / 25.35MB 11.8s => => sha256:5c4340f87b72bb602c13a5e79e65bb873e0ce85703d929d8aad9a7d71298f26b 601B / 601B 0.5s => => sha256:19da26bd6ef0468ac8ef5c03f01ce1569a4dbfb82d4d7b7ffbd7aed16ad3eb46 1.86kB / 1.86kB 0.0s => => sha256:787480bfb4297dc887f8655dbc51074ef87f16ea359baeea3af0a4dd92948124 1.57kB / 1.57kB 0.0s => => sha256:9de84a6a72f538009fd1a3ed878650d637adf7fcfa3efb69a3cbbc534dfa667e 892B / 892B 1.8s => => sha256:63f91b232fe372dae5f3804faefc7f24a8fc3a222680fe2e755f24dbd97434d0 667B / 667B 2.3s => => sha256:860d24db679a16caea43770df8311c17765e41ddafc7218000bf1e868465f1fd 1.40kB / 1.40kB 3.1s => => extracting sha256:214ca5fb90323fe769c63a12af092f2572bf1c6b300263e09883909fc865d260 2.6s => => extracting sha256:f0156b83954cc6c71cb4b4e662cc79c0154a67507fc7b28107a10afa3b6901ab 1.4s => => extracting sha256:5c4340f87b72bb602c13a5e79e65bb873e0ce85703d929d8aad9a7d71298f26b 0.0s => => extracting sha256:9de84a6a72f538009fd1a3ed878650d637adf7fcfa3efb69a3cbbc534dfa667e 0.0s => => extracting sha256:63f91b232fe372dae5f3804faefc7f24a8fc3a222680fe2e755f24dbd97434d0 0.0s => => extracting sha256:860d24db679a16caea43770df8311c17765e41ddafc7218000bf1e868465f1fd 0.0s => [2/2] RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html0.3s=> exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:2c0ae5173a341fae706e5f6f5b0d77013231206cee24058f5aa19dfc058d81a9 0.0s => => naming to docker.io/library/nginx:v_test 0.0sUse 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix themλ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v_test 2c0ae5173a34 6 seconds ago 142MB
mq 2.0 bb7653f2856b 5 minutes ago 149MB
docker101tutorial latest 122430998e59 2 months ago 28.8MB
openjdk latest 2f765403878f 2 months ago 471MB
openzipkin/zipkin latest 8911130146d1 4 months ago 155MB
alpine/git latest c6b70534b534 5 months ago 27.4MB
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
centos 7 eeb6ee3f44bd 7 months ago 204MB
mq 1.0 2888deb59dfc 3 years ago 149MB
导入和导出镜像
导出命令
docker save -o hello-word_latest.tar hello-world:latest
导入命令
λ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 7 months ago 13.3kBλ docker rmi feb5d9fea6a5 -f
Untagged: hello-world:latest
Untagged: hello-world@sha256:97a379f4f88575512824f3b352bc03cd75e239179eea0fecc38e597b2209f49a
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412λ docker images
REPOSITORY TAG IMAGE ID CREATED SIZEλ docker load -i hello-word_latest.tar
Loaded image: hello-world:latestC:\Users\GL\Desktop
λ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 7 months ago 13.3kB
简化如下
docker save > hello-word_latest.tar hello-world:latest
docker load < hello-word_latest.tar