docker入门1 : 使用docker镜像

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26654727/article/details/78360027 持续更新中……….
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26654727/article/details/78360027

持续更新中……….

1.安装docker

centos7 内核版本在3.10.0-693.el7.x86_64之上的直接执行: yum install docker -y 即可

本机版本3.10.0-693.el7.x86_64 直接执行yum install docker -y centos7
若centos版本在centos6,则需要更新内核版本才可以安装docker。

2.使用docker镜像

2.1 安装docker镜像

使用docker pull Name[:TAG] 安装指定镜像的名称和版本号
安装centos最近版本的镜像,从docker默认镜像库进行下载 命令: sudo docker pull centos

Using default tag: latest
Trying to pull repository docker.io/library/centos ... 
latest: Pulling from docker.io/library/centos
d9aaf4d82f24: Pull complete 
Digest: sha256:eba772bac22c86d7d6e72421b4700c3f894ab6e35475a34014ff8de74c10872e

创建成功之后,我们就开始使用该镜像创建一个容器,并在该容器中进行操作。
docker run -it centos bash

[root@localhost sysconfig]# docker run -it centos bash 
[root@fc99abc4213f /]# ls
anaconda-post.log  dev  home  lib64       media  opt   root  sbin  sys  usr
bin                etc  lib   lost+found  mnt    proc  run   srv   tmp  var
[root@fc99abc4213f /]# ping localhost 
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.062 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.083 ms
^C
--- localhost ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.062/0.083/0.105/0.019 ms
[root@fc99abc4213f /]# exit 
exit
2.2 查看镜像信息

2.2.1 使用命令 docker images 查看当前镜像信息

[root@localhost sysconfig]# sudo docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/redis     3.2                 4ae3b93617bd        2 weeks ago         99.67 MB
docker.io/centos    latest              196e0ce0c9fb        5 weeks ago         196.6 MB

images 子命令主要支持如下的选项:
(1) -a ,–all=true|false 列出所有的镜像文件
(2) –digests=true|false 列出镜像的数字摘要值,默认为否
(3) -f –filter=[] 过滤列出的镜像

2.2.2 使用tag命令添加镜像标签

[root@localhost sysconfig]# docker tag redis:3.2 myredis:0.1
[root@localhost sysconfig]# sudo docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/redis     3.2                 4ae3b93617bd        2 weeks ago         99.67 MB
myredis             0.1                 4ae3b93617bd        2 weeks ago         99.67 MB
docker.io/centos    latest              196e0ce0c9fb        5 weeks ago         196.6 MB

2.2.3 使用inspect 命令查看详细信息
查看详细信息

[root@localhost sysconfig]# docker inspect myredis:0.1
[
    {
        "Id": "sha256:4ae3b93617bdb7cc7559c021cd57fec2db465daf94e717b61282406b74493941",
      "RepoTags": [
          "docker.io/redis:3.2",
          "myredis:0.1"
      ],
      "RepoDigests": [
          "docker.io/redis@sha256:b15e3fabba806a6ee7f14774df0c2dc3036f752969bcdac022f0aa96d5cfc954"
       ],
       "Parent": "",
       "Comment": "",
       "Created": "2017-10-10T02:50:23.955973925Z",
       "Container": "13285f8661db6019c0916f3252c76c17bad6508905a319358c85f7acf7967365",
       "ContainerConfig": {
           "Hostname": "13285f8661db",
           "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.10",
                "REDIS_VERSION=3.2.11",
               "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-3.2.11.tar.gz",
               "REDIS_DOWNLOAD_SHA=31ae927cab09f90c9ca5954aab7aeecc3bb4da6087d3d12ba0a929ceb54081b5"
           ],
           "Cmd": [
               "/bin/sh",
               "-c",
               "#(nop) ",
               "CMD [\"redis-server\"]"
           ],
           "ArgsEscaped": true,
           "Image": "sha256:0d4214b1bf00a587daa1d4f36421bd99e4b2c316249280675bec34faaa6d6e0d",
           "Volumes": {
               "/data": {}
           },
           "WorkingDir": "/data",
           "Entrypoint": [
               "docker-entrypoint.sh"
           ],
           "OnBuild": [],
           "Labels": {}
       },
       "DockerVersion": "17.06.2-ce",
       "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.10",
               "REDIS_VERSION=3.2.11",
               "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-3.2.11.tar.gz",
               "REDIS_DOWNLOAD_SHA=31ae927cab09f90c9ca5954aab7aeecc3bb4da6087d3d12ba0a929ceb54081b5"
           ],
           "Cmd": [
               "redis-server"
           ],
           "ArgsEscaped": true,
           "Image": "sha256:0d4214b1bf00a587daa1d4f36421bd99e4b2c316249280675bec34faaa6d6e0d",
           "Volumes": {
               "/data": {}
           },
           "WorkingDir": "/data",
           "Entrypoint": [
               "docker-entrypoint.sh"
           ],
           "OnBuild": [],
           "Labels": null
       },
       "Architecture": "amd64",
       "Os": "linux",
       "Size": 99668649,
       "VirtualSize": 99668649,
       "GraphDriver": {
           "Name": "devicemapper",
           "Data": {
               "DeviceId": "10",
               "DeviceName": "docker-253:0-33690427-dea7d2d0030dc44a3edf0fcc80077d715d5ccf4825a3db161da84436cf1dcdc7",
               "DeviceSize": "10737418240"
           }
       },
       "RootFS": {
           "Type": "layers",
           "Layers": [
               "sha256:29d71372a4920ec230739a9e2317e7e9b18644edb10f78cde85df85e6ab85fc2",
               "sha256:f5ccc3ab98cc45041bcf1f2cf49afb7e5046316af795c88ef6be50ed149cc3a4",
               "sha256:3fae9b7c819afb850f999670dc88cc3f646a146c379103c8947df99c03498ebe",
               "sha256:7044a5153c6481a7284e181703432930f392aa39fb12982c9a2d8cb2f2448cb0",
               "sha256:7768d1f84ecca49f4ca1005047f7d5d8a3a009dfb3e0213cdbbb3856f7e4c115",
               "sha256:327ce591d4be258dd33151003eebd5cc362fd6caed83f9a5512b7970a8f5facb"
           ]
       }
   }
]

查看某一个参数信息 “docker inspect -f {{“.Os”}} myredis:0.1 ”
“`
[root@localhost sysconfig]# docker inspect -f {{“.Os”}} myredis:0.1
linux
[root@localhost sysconfig]# docker inspect -f {{“.Size”}} myredis:0.1
99668649

2.3搜索镜像

docker search redis -a 10

[root@localhost ~]# sudo docker search redis -s 10 
Flag --stars has been deprecated, use --filter=stars=3 instead
INDEX       NAME                                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/redis                             Redis is an open source key-value store th...   4359      [OK]       
docker.io   docker.io/bitnami/redis                     Bitnami Redis Docker Image                      59                   [OK]
docker.io   docker.io/sameersbn/redis                                                                   59                   [OK]
docker.io   docker.io/tenstartups/redis-commander                                                       29                   [OK]
docker.io   docker.io/kubeguide/redis-master            redis-master with "Hello World!"                19                   
docker.io   docker.io/joshula/redis-sentinel            A container for Redis Sentinel                  18                   
docker.io   docker.io/kubeguide/guestbook-redis-slave   Guestbook redis slave                           14                   
docker.io   docker.io/tutum/redis                       Base docker image to run a Redis server         10     

2.4删除镜像

删除镜像分为两种方式进行删除,分别为:
a.使用标签进行删除
使用标签进行删除时,如果存在由该镜像创建的多个标签的镜像,删除其中的一个并不会删除该镜像,只有该镜像只有唯一的一个标签时,删除该标签将会导致该镜像彻底删除。

[root@localhost ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/redis     3.2                 4ae3b93617bd        2 weeks ago         99.67 MB
myredis             0.2                 4ae3b93617bd        2 weeks ago         99.67 MB
myredis             0.3                 4ae3b93617bd        2 weeks ago         99.67 MB
[root@localhost ~]# docker rmi myredis:0.2 
Untagged: myredis:0.2
[root@localhost ~]# docker rmi myredis:0.3 
Untagged: myredis:0.3
Untagged: docker.io/redis@sha256:b15e3fabba806a6ee7f14774df0c2dc3036f752969bcdac022f0aa96d5cfc954
[root@localhost ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/redis     3.2                 4ae3b93617bd        2 weeks ago         99.67 MB
[root@localhost ~]# docker rmi redis
Error response from daemon: No such image: redis:latest
[root@localhost ~]# docker rmi redis:3.2
Untagged: redis:3.2
Deleted: sha256:4ae3b93617bdb7cc7559c021cd57fec2db465daf94e717b61282406b74493941
Deleted: sha256:23434bfcd3a31cd975c6384253ba687fbcbd895b3e1a54af27824af9ed937591
Deleted: sha256:0d30a0d1a42e43f5dc11264673fd4ee56a03095dbcd3da72924870de4df577aa
Deleted: sha256:3a6d079caad238a31ea4283d4fc3f443d6e75bb1d3ce199cd916dc49627c5931
Deleted: sha256:5b3c3d58e5f9d9460b356d01329f9016fbb1959bf1522f357fb81a2db362908b
Deleted: sha256:a895b72388eb73dd9fb4406a318ee67fe48c7e70e01190c8f2ac4310dc529245
Deleted: sha256:29d71372a4920ec230739a9e2317e7e9b18644edb10f78cde85df85e6ab85fc2
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

b.使用id进行删除
在删除镜像时,若该镜像创建了一个容器。且该容器存在时,则无法对该镜像进行删除。如若希望强制删除,则使用命令docker rmi -f [image]

[root@localhost ~]# docker rmi 196e0ce0c9fb
Error response from daemon: conflict: unable to delete 196e0ce0c9fb (must be forced) - image is being used by stopped container fc99abc4213f
[root@localhost ~]# docker rmi -f 196e0ce0c9fb
Untagged: docker.io/centos:latest
Deleted: sha256:196e0ce0c9fbb31da595b893dd39bc9fd4aa78a474bbdc21459a3ebe855b7768
[root@localhost ~]# 

2.5创建镜像

创建镜像主要有三种方式
a.使用容器创建镜像。

[root@localhost ~]# docker run -it centos bash
WARNING: IPv4 forwarding is disabled. Networking will not work.
[root@1ed5befe7051 /]# useradd nrs 
[root@1ed5befe7051 /]# exit  
exit
[root@localhost ~]# docker commit -m "add user nrs" -a "augus" 1ed5befe7051 mycentos:01 
sha256:a154ae24d66d16201ba1bed9112e2cab11714644364b5bccef0d2ea2b1b3c443
[root@localhost ~]# 

b.使用本地模板创建镜像
c.使用dockerFile创建镜像

2.6镜像的载入和写出

镜像的写出
docker save -o centos.01.tar centos:01
镜像的载入
docker load –input centos.01.tar

[augus@localhost ~]$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mycentos            01                  a154ae24d66d        30 minutes ago      196.9 MB
docker.io/centos    latest              196e0ce0c9fb        6 weeks ago         196.6 MB
[augus@localhost ~]$  docker save -o mycentos.01.tar mycentos:01
[augus@localhost ~]$ ls
mycentos.01.tar  precreated
[augus@localhost ~]$ docker load --input mycentos.01.tar 
Loaded image: mycentos:01
[augus@localhost ~]$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mycentos            01                  a154ae24d66d        32 minutes ago      196.9 MB
docker.io/centos    latest              196e0ce0c9fb        6 weeks ago         196.6 MB
[augus@localhost ~]$ docker rmi mycentos:01 
Untagged: mycentos:01
Deleted: sha256:a154ae24d66d16201ba1bed9112e2cab11714644364b5bccef0d2ea2b1b3c443
Deleted: sha256:5d58cde1df9c759667826244365052df54e7920391e72f8cdd1a3d1d35bc5bba
[augus@localhost ~]$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              196e0ce0c9fb        6 weeks ago         196.6 MB
[augus@localhost ~]$ docker load --input mycentos.01.tar 
edfd6667dbbb: Loading layer [==================================================>] 312.8 kB/312.8 kB
Loaded image: mycentos:01
[augus@localhost ~]$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mycentos            01                  a154ae24d66d        33 minutes ago      196.9 MB
docker.io/centos    latest              196e0ce0c9fb        6 weeks ago         196.6 MB
[augus@localhost ~]$ 
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
100 2
|
25天前
|
Docker 容器
将本地的应用程序打包成Docker镜像
将本地的应用程序打包成Docker镜像
|
9天前
|
Ubuntu 应用服务中间件 nginx
docker入门-快速学会docker
本文介绍了Docker的基本概念,包括镜像、容器、tar文件、Dockerfile和仓库,并通过实际操作演示了如何使用Docker。从拉取Nginx镜像、运行容器、修改容器内容、保存容器为新镜像,到使用Dockerfile构建自定义镜像,最后讲解了如何保存和恢复镜像。文中还推荐了一个在线实践平台Play with Docker,方便读者快速上手Docker。
45 4
docker入门-快速学会docker
|
9天前
|
NoSQL PHP MongoDB
docker push推送自己搭建的镜像
本文详细介绍了如何搭建和复盘两个Web安全挑战环境:人力资源管理系统和邮件管理系统。首先,通过Docker搭建MongoDB和PHP环境,模拟人力资源管理系统的漏洞,包括nosql注入和文件写入等。接着,复盘了如何利用这些漏洞获取flag。邮件管理系统部分,通过目录遍历、文件恢复和字符串比较等技术,逐步绕过验证并最终获取flag。文章提供了详细的步骤和代码示例,适合安全研究人员学习和实践。
33 3
docker push推送自己搭建的镜像
|
13天前
|
Docker 容器
|
25天前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
48 9
|
25天前
|
存储 缓存 运维
Docker镜像采用分层存储,每层代表镜像的一部分,如基础组件或应用依赖,多层叠加构成完整镜像
Docker镜像采用分层存储,每层代表镜像的一部分,如基础组件或应用依赖,多层叠加构成完整镜像。此机制减少存储占用,提高构建和传输效率。Docker还通过缓存机制提升构建和运行效率,减少重复工作。文章深入解析了Docker镜像分层存储与缓存机制,包括具体实现、管理优化及实际应用案例,帮助读者全面理解其优势与挑战。
43 4
|
1月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
1月前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
1月前
|
存储 关系型数据库 Linux
【赵渝强老师】什么是Docker的镜像
Docker镜像是一个只读模板,包含应用程序及其运行所需的依赖环境。镜像采用分层文件系统,每次修改都会以读写层形式添加到原只读模板上。内核bootfs用于加载Linux内核,根镜像相当于操作系统,上方为应用层。镜像在物理存储上是一系列文件的集合,默认存储路径为“/var/lib/docker”。

热门文章

最新文章