Docker深入浅出3-镜像管理

时间:2022-03-06 16:22:41

当运行容器的时候,使用的镜像如果在本地中不存在,docker就会自动从docker镜像仓库中下载,默认是从dockerhub公共镜像源下载。

1:镜像列表

我们可以使用docker images

[root@admin-fxr ~]# docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
docker.io/mysql                latest              a8a59477268d        5 weeks ago         445 MB
hub.c.163.com/library/tomcat   latest              72d2be374029        10 months ago       292 MB
[root@admin-fxr ~]# 

选项说明:

REPOSITORY:表示镜像仓库源
TAG:镜像标签
IMAGE ID :镜像id
CREATED:镜像创建时间
SIZE:镜像大小
同一个仓库源可以有多个TAG,代表这个仓库源的不同的版本,如ubantu仓库源里,有好几个版本,我们使用
REPOSITORY:TAG来定义不同的镜像。
2:获取镜像
docker pull 镜像名称
3:查找镜像
docker search tomcat
 docker search tomcat
INDEX       NAME                                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/tomcat                                Apache Tomcat is an open source implementa...   1876      [OK]       
docker.io   docker.io/tomee                                 Apache TomEE is an all-Apache Java EE cert...   51        [OK]       
docker.io   docker.io/dordoka/tomcat                        Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba...   49                   [OK]
docker.io   docker.io/davidcaste/alpine-tomcat              Apache Tomcat 7/8 using Oracle Java 7/8 wi...   24                   [OK]
docker.io   docker.io/bitnami/tomcat                        Bitnami Tomcat Docker Image                     16                   [OK]
docker.io   docker.io/consol/tomcat-7.0                     Tomcat 7.0.57, 8080, "admin/admin"              16                   [OK]
docker.io   docker.io/cloudesire/tomcat                     Tomcat server, 6/7/8                            15                   [OK]
docker.io   docker.io/tutum/tomcat                          Base docker image to run a Tomcat applicat...   9                    
docker.io   docker.io/jeanblanchard/tomcat                  Minimal Docker image with Apache Tomcat         8                    
docker.io   docker.io/meirwa/spring-boot-tomcat-mysql-app   a sample spring-boot app using tomcat and ...   8                    [OK]
docker.io   docker.io/aallam/tomcat-mysql                   Debian, Oracle JDK, Tomcat & MySQL              6                    [OK]
docker.io   docker.io/rightctrl/tomcat                      CentOS , Oracle Java, tomcat application s...   3                    [OK]
docker.io   docker.io/amd64/tomcat                          Apache Tomcat is an open source implementa...   2                    
docker.io   docker.io/fabric8/tomcat-8                      Fabric8 Tomcat 8 Image                          2                    [OK]
docker.io   docker.io/maluuba/tomcat7-java8                 Tomcat7 with java8.                             2                    
docker.io   docker.io/99taxis/tomcat7                       Tomcat7                                         1                    [OK]
docker.io   docker.io/camptocamp/tomcat-logback             Docker image for tomcat with logback integ...   1                    [OK]
docker.io   docker.io/primetoninc/tomcat                    Apache tomcat 8.5, 8.0, 7.0                     1                    [OK]
docker.io   docker.io/awscory/tomcat                        tomcat                                          0                    
docker.io   docker.io/jelastic/tomcat                                                                       0                    
docker.io   docker.io/oobsri/tomcat8                        Testing CI Jobs with different names.           0                    
docker.io   docker.io/picoded/tomcat7                       tomcat7 with jre8 and MANAGER_USER / MANAG...   0                    [OK]
docker.io   docker.io/s390x/tomcat                          Apache Tomcat is an open source implementa...   0                    
docker.io   docker.io/swisstopo/service-print-tomcat        backend tomcat for service-print "the true...   0                    
docker.io   docker.io/trollin/tomcat                                                                        0                    
[root@admin-fxr ~]# 

4:创建镜像

当我们从docker镜像仓库中下载的镜像不满足我们的需求的时候,我们可以通过以下两种方式对镜像进行更改:

4.1从已经创建的容器中更新镜像,并且提交这个镜像

4.2使用Dockerfile指令来创建一个新的镜像

5:Dockerfile

dockerfile是一个包含用于组合映像的命令的文本文档,可以使用在命令行中调用任何命令。Docker通过读取Dockerfile中的指令自动生成映像。

docker build 命令用于从Dockerfile构建镜像,可以在docker build 命令中使用-f 标志指向文件系统中任何位置的Dockerfile.

docker build -f /path/to/a/Dockerfile

Dockerfile文件说明

说明不区分大小写,但是必须遵循建议使用大写字母的约定。

Docker从上到下的顺序执行Dockerfile的指令,为了指定基本映像,第一条指令必须是FROM 一个声明以  #  字符开头则被视为注释,可以在Docker文件中使用RUN,CMD,FROM,EXPOSE,ENV等指令。

在这里列出来一些常用的指令:

FROM:该指令用于设置后续指令的基本映像,有效的Dockerfile必须使用FROM作为第一条指令,

FROM ubuntu

MAINTAINER:指定镜像的作者

MAINTAINER <name>

RUN:该指令用于执行当前映像的任何指令