当运行容器的时候,使用的镜像如果在本地中不存在,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:该指令用于执行当前映像的任何指令