1.启动docker服务



[root@localhost ~]# service docker start
可以看到截图中启动命令重定向到了systemctl start docker.service,所以直接使用systemctl start docker.service也可以启动服务

  


启动一个能ping的容器 运行一个容器_启动一个能ping的容器



2.查看当前宿主机的镜像列表(有哪些镜像可用)



[root@localhost ~]# docker images



    

启动一个能ping的容器 运行一个容器_docker_02


REPOSITORY:表示该镜像来自哪个仓库。镜像保存在仓库,而仓库存在于Registry中,官方的Registry即Docker Hub;每个镜像仓库可以存放多个镜像,如ubuntu仓库包含了ubuntu14.04,13.04。Docker Hub中有2种类型的仓库,用户仓库和顶层仓库,用户仓库的镜像都是由docker用户创建的,而顶层仓库则有官方管理。 用户仓库由用户名+仓库名组成,如jamtur01/tomcat; 顶层仓库只包含仓库名。 TAG:镜像的标签信息,为了区分同一个仓库中的不同镜像 IMAGE ID:镜像ID,唯一标识镜像 CREATED:创建时间,即镜像的最后更新时间 SIZE:镜像大小


3.搜索镜像(默认在官方仓库中搜索) 


[root@localhost ~]# docker search hello-world


启动一个能ping的容器 运行一个容器_启动一个能ping的容器_03


 4.拉取镜像


[root@localhost ~]# docker pull hello-world
如果没有指定镜像的标签信息,则会默认下载latest标签


启动一个能ping的容器 运行一个容器_docker_04


 5.删除镜像


通过镜像ID删除
[root@localhost ~]#docker rmi ccc7a11d65b1 镜像ID
通过镜像标签
[root@localhost ~]#docker rmi helloworld:12 (如果不加标签,则默认删除标签为latest的镜像,如果没有该标签的镜像,就会报错)

  

启动一个能ping的容器 运行一个容器_java_05

注意:当有该镜像创建的容器存在时(只要存在容器,不管是否在运行),镜像文件默认是无法被删除的


 6.使用tag命令添加标签


[root@localhost ~]# docker tag docker.io/hello-world helloworld:1.1.0


  添加的标签实际起到了类似链接的作用,可以看到2个镜像的镜像ID是相同的,,实际指向同一个镜像文件,只是别名不同。


当同一个镜像拥有多个标签时,docker rmi命令只是删除该镜像多个标签中指定的标签,不会影响镜像文件,如果只剩1个镜像标签了,就会彻底删除该镜像。


  强行删除,可使用-f参数(不推荐)  docker rmi -f ccc7a11d65b1


 7. inspect命令查看镜像详细信息


[root@localhost ~]# docker inspect docker.io/ubuntu
{ "Id": "sha256:ccc7a11d65b1b5874b65adb4b2387034582d08d65ac1817ebc5fb9be1baa5f88", 。。。。。。
}

使用-f 参数获取其中一项信息
[root@localhost ~]# docker inspect -f {{".Os"}} docker.io/ubuntu
linux
[root@localhost ~]#


 8.使用docker build命令创建镜像


如果当前目录时Dockerfile所在目录
[root@localhost helloword]# docker build -t jamtur01/tomcat .
-t 表示为新镜像设置仓库和名称,本例中,仓库名为jamtur01,镜像名tomcat
. 表示使用当前目录中的Dockfile文件

如果当前目录不是Dockerfile文件所在目录,则需要指定Dockerfile文件所在目录,例如Dockerfile在/HMK/helloword/
[root@localhost HMK]# docker build -t hmk/tomcat:v1.0 /HMK/helloword/

也可以为镜像设置一个标签,如上面的 “hmk/tomcat:v1.0,如果没有设置任何标签,docker将会自动为镜像设置一个latest标签