Docker镜像、容器操作

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Docker镜像、容器操作

一、镜像操作

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

三、使用误区

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

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1天前
|
Shell 调度 Docker
在Docker中,如何清理批量后台停止的容器?
在Docker中,如何清理批量后台停止的容器?
|
1天前
|
存储 Docker 容器
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
|
1天前
|
缓存 Kubernetes 数据中心
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
|
1天前
|
Kubernetes Shell 测试技术
在Docker中,可以在一个容器中同时运行多个应用进程吗?
在Docker中,可以在一个容器中同时运行多个应用进程吗?
|
1天前
|
Shell Docker 容器
在Docker中,如何停止所有正在运行的容器?
在Docker中,如何停止所有正在运行的容器?
|
1天前
|
存储 Kubernetes 监控
在Docker中,很多应用容器都是默认后台运行的,怎么查看它们的输出和日志信息?
在Docker中,很多应用容器都是默认后台运行的,怎么查看它们的输出和日志信息?
|
1天前
|
Docker 容器
Docker启动的容器如何做到自动重启?
【8月更文挑战第19天】Docker启动的容器如何做到自动重启?
10 1
|
1天前
|
JSON Linux 虚拟化
"揭秘!如何用Clash代理为Docker穿上‘隐身衣’,轻松绕过限制,实现镜像秒速拉取?"
【8月更文挑战第20天】无论是开发环境还是生产环境,这一技巧都将大大提升你的工作效率和稳定性。
|
1天前
|
Docker 容器
docker: 搭建 harbor 镜像仓库
docker: 搭建 harbor 镜像仓库
|
1天前
|
Docker 容器
docker: 修改运行容器的端口
docker: 修改运行容器的端口