制作image 的前提需要熟悉dockerfile,dockerfile是一个文件,是一个用来描述镜像的文件,是多组命令内容组成的文件;可以参看下mysql 的dockerfile:https://github.com/docker-library/official-images/blob/master/Dockerfile
先写一个简单入门级别的image,这里我新建了一个springboot 项目,里面内容很简单:
通过访问ip:port/dockerfile 显示出hello docker;需要把这个工程打包成jar文件,我这里直接在IDEA 里操作的->mvn clean package,此时会在当前工程中target 目录下生成jar 文件:docker-image-0.0.1-SNAPSHOT.jar 把此jar 包放到放到docker 目录下,这里我在docker 根目录下新建了一个目录;有了这个jar 包,我们在jar 包所在的目录下开始写dockerfile文件,大概内容如下:
截图中对应的是五个指令,指令详情如下:
以上内容保存文件为:Dockerfile
有了dockerfile 后,基于它生成镜像文件: docker build -t test-docker-image . 构建镜像;通过 docker images 查看镜像是否创建成功,然后创建并运行container
docker run -d --name 名字 镜像名字(test-docker-image)
通过docker ps 查看container是否创建并运行;这几步没有问题后,可以通过docker logs (container名字) 来查看我们jar 运行的log 信息(和在IDEA 运行的log信息并无差异)
思考:我们该如何访问这个服务呢?
第一种,我们可以在docker 内部来访问,命令如下:
这个user01是我们上面的container 名字我这里的端口号是默认的8080;此时会显示出项目controller 打印的log信息:hello docker
第二种:通过物理机的浏览器来访问(就像访问我们本地服务一样),我们需要把8080 端口映射到外层docker 端口上,执行以下命令
docker run -d --name container名字 -p 9988:8080 image名字
此时,本地物理机可以通过浏览器来访问
以上我们可以制作出image 镜像,下一次来做发布操作