Docker镜像、容器操作

本文介绍了Docker中如何查看和管理镜像,包括查看所有镜像、搜索镜像、拉取镜像以及删除镜像的命令。此外,还详细讲解了容器的操作,如查看容器、创建与启动容器、连接到容器、停止与删除容器,以及强调了容器数据持久化的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、镜像操作

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

三、使用误区

容器不会持久化数据:容器内部是可以持久化数据的,容器停止后重启启动,可以重新访问数据。容器被删除了,数据丢失。建议使用卷持久化数据,这样即使容器删除了,数据还在,相当于对数据和应用的分离。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值