上一篇,我们已经成功安装好了docker,这一篇,我就要讲一下怎么使用。
还是先说说docker吧。都说docker是一个容器,可是怎么理解这个容器?你必须知道下面三点
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
1.Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。
2.镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。我们可以自己build镜像,也可以从Docker Hub去拉取很多官方镜像。
3.docker有官方的仓库(第二点的Docker Hub),里面有很多已经构建好的镜像,我们只需要去下载就好了,专业术语就是pull,拉取,当然也有其他仓库地址,也有私有仓库,就是自己构建一个仓库来存储镜像,这些大家可以参考一下官方中文文档,里面也有很多基本命令,我们回归正题。
相信通过上面三点,你对docker正体有了大致的了解,接下来我举个简单的例子,手把手教你部署一个web项目,过程中会介绍一下常用的docker指令。
1.首先,我们用idea创建一个springboot项目。这个我就不详细描述了,创建一个controller
server.port设置成8080,然后用maven package打包。当然要在pom文件中设置build参数,不然运行会报错,参考我这篇文章。
2.将打号的jar包扔到linux上去,目录你随意就好,我这里的路径是
3.新建一个Dockerfile,注意这里的名字是默认的,一般都不会改它,如果你实在想改名字,build的时候加入-f参数就行。
Dockerfile是一个文本文档,它包含用户可以在命令行上调用的所有命令,并组装一个映像。Dockerfile怎么理解呢,你可以看做是mapper.xml上面那一段声明,固定的,只是参数可以增删而已。
创建之后我们vim这个文件,编写一些东西。
注意,ADD docker-0.0.1-SNAPSHOT.jar app.jar 这个jar包要跟你自己项目打成的jar包命名要一致。其他参数,我们下回在讲,这不影响我们部署项目。或者大家可以参考这边文章Dockerfile 介绍
接下来看看我们的目录,就两个文件。
4.上面我们说到了,要将项目构建成一个镜像,才能被docker容器运行,现在准备工作做好了,我们开始构建。
8.一些常用的容器操作
(1)用命令看容器:docker container ls查看当前所有运行的容器
(2)对容器的常用操作,前面一个run,还有停止,删除等等。
a50就是CONTAINER ID 为:a50708893e01的简写
(3)停止之后的容器怎么查看呢,只需要在ls后面加个参数-a就行了。
(4)删除一个容器项目
如果容器正在运行想要删除会报错的,这是后再加个参数-f就行了,这时候容器自行会去kill掉