一、镜像操作
1、查看所有镜像
#docker查看镜像 docker image ls #查看所有镜像 docker images
#显示镜像SHA256签名 docker image ls --digests
#列出 标签为latest的镜像 docker image ls --filter reference="*:latest"
#格式化显示镜像 docker image ls --format "{{.Repository}} {{.Tag}}"
2、搜索镜像
#搜索镜像 docker search redis #返回前10条 docker search redis --limit=10
3、拉取镜像
#拉取镜像 docker pull ubuntu
如需注册,访问下方链接,注册登录后操作。
https://hub.docker.com/signup
#拉取镜像 名称:标签 docker image pull <repository>:<tag> #拉取镜像 根据对象摘要 docker image pull alpine@sha256:21a3deaa0d32a8057914f36584b5288d2e5ecc984380bc0118285c70fa8c9300 #拉取所有镜像 docker image pull -a nigelpoulton/tu-demo
4、查看镜像
#查看镜像的分层信息 docker image inspect redis
[ { "Id": "sha256:7614ae9453d1d87e740a2056257a6de7135c84037c367e1fffa92ae922784631", "RepoTags": [ "redis:latest" ], "RepoDigests": [ "redis@sha256:db485f2e245b5b3329fdc7eff4eb00f913e09d8feb9ca720788059fdc2ed8339" ], "Parent": "", "Comment": "", "Created": "2021-12-21T12:42:49.755107412Z", "Container": "13d25f53410417c5220c8dfe8bd49f06abdbcd69faa62a9b877de02464bb04a3", "ContainerConfig": { "Hostname": "13d25f534104", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "ExposedPorts": { "6379/tcp": {} }, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "GOSU_VERSION=1.12", "REDIS_VERSION=6.2.6", "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-6.2.6.tar.gz", "REDIS_DOWNLOAD_SHA=5b2b8b7a50111ef395bf1c1d5be11e6e167ac018125055daa8b5c2317ae131ab" ], "Cmd": [ "/bin/sh", "-c", "#(nop) ", "CMD [\"redis-server\"]" ], "Image": "sha256:e093f59d716c95cfce82c676f099b960cc700432ab531388fcedf79932fc81ec", "Volumes": { "/data": {} }, "WorkingDir": "/data", "Entrypoint": [ "docker-entrypoint.sh" ], "OnBuild": null, "Labels": {} }, "DockerVersion": "20.10.7", "Author": "", "Config": { "Hostname": "", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "ExposedPorts": { "6379/tcp": {} }, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "GOSU_VERSION=1.12", "REDIS_VERSION=6.2.6", "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-6.2.6.tar.gz", "REDIS_DOWNLOAD_SHA=5b2b8b7a50111ef395bf1c1d5be11e6e167ac018125055daa8b5c2317ae131ab" ], "Cmd": [ "redis-server" ], "Image": "sha256:e093f59d716c95cfce82c676f099b960cc700432ab531388fcedf79932fc81ec", "Volumes": { "/data": {} }, "WorkingDir": "/data", "Entrypoint": [ "docker-entrypoint.sh" ], "OnBuild": null, "Labels": null }, "Architecture": "amd64", "Os": "linux", "Size": 112691373, "VirtualSize": 112691373, "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/a1f8a324264f6addcd10954bff2d33adf61f0c4d437547b44088a203246c54ec/diff:/var/lib/docker/overlay2/a48e089acc7d35927438b57cd73126dbb30eeb705ca591737b517526744a15d3/diff:/var/lib/docker/overlay2/95e4c043d7517a7b1c5e672a5aa477609455910b9668930be1900a2d15274521/diff:/var/lib/docker/overlay2/ad3fa444c5d8295239bf490e38558806a765d6e0065a8168c21b3f18d90f6084/diff:/var/lib/docker/overlay2/be5e95dd62ea3f45f27d4e4a515bcb07e6f2efd522781c1bff6c15f041bf6a7f/diff", "MergedDir": "/var/lib/docker/overlay2/31cada08eb4e5cdfa4de8f59594dbea33e05a2705119f4aea76bbc76ddbfcd29/merged", "UpperDir": "/var/lib/docker/overlay2/31cada08eb4e5cdfa4de8f59594dbea33e05a2705119f4aea76bbc76ddbfcd29/diff", "WorkDir": "/var/lib/docker/overlay2/31cada08eb4e5cdfa4de8f59594dbea33e05a2705119f4aea76bbc76ddbfcd29/work" }, "Name": "overlay2" }, "RootFS": { "Type": "layers", "Layers": [ "sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f", "sha256:9b24afeb7c2f21e50a686ead025823cd2c6e9730c013ca77ad5f115c079b57cb", "sha256:4b8e2801e0f956a4220c32e2c8b0a590e6f9bd2420ec65453685246b82766ea1", "sha256:529cdb636f61e95ab91a62a51526a84fd7314d6aab0d414040796150b4522372", "sha256:9975392591f2777d6bf4d9919ad1b2c9afa12f9a9b4d260f45025ec3cc9b18ed", "sha256:8e5669d8329116b8444b9bbb1663dda568ede12d3dbcce950199b582f6e94952" ] }, "Metadata": { "LastTagTime": "0001-01-01T00:00:00Z" } } ]
5、删除镜像
#删除镜像 docker image rm alpine
二、容器操作
容器:镜像的实例,一个镜像可以有多个实例。
1、查看容器
#查看正在运行的容器 docker container ls
#查看所有容器 docker container ls -a
2、创建容器
#启动容器 交互模式启动 ubuntu容器 运行bash实例 docker container run -it ubuntu:latest /bin/bash
#创建时指定名字 docker container run --name percy -it ubuntu:latest /bin/bash
后台启动
# -d后台启动 --restart always 除非使用了docker container stop停止容器,其他原因引起的停止 都会自动重启 docker container run --name myubuntu -d --restart always ubuntu:latest
指定端口
#-p docker主机端口:容器端口 docker container run --name redis6001 -d -p 6001:6001 redis:latest
3、连接容器
使用容器的名称和ID均可
#使用shell连接到运行的容器 docker container exec -it vigilant_heyrovsky bash
4、停止容器
#停止容器运行 docker container stop vigilant_heyrovsky
5、删除容器
#删除容器运行 docker container rm vigilant_heyrovsky
6、启动容器
docker container start percy
三、使用误区
容器不会持久化数据:容器内部是可以持久化数据的,容器停止后重启启动,可以重新访问数据。容器被删除了,数据丢失。建议使用卷持久化数据,这样即使容器删除了,数据还在,相当于对数据和应用的分离。