扯淡:
本章将介绍镜像的常用命令,构建一个自己的镜像,运行镜像对外提供服务。
个人学习总结:
链接:【springboot、springcloud、docker 等,学习目录】
常用命令:
docker images --help : 帮助命令
docker images:查看本地镜像 可加以上参数。
docker images -a:列出所有,包含中间镜像(默认不显示)。
docker images tomcat : 列出本地 repository 为 tomcat 镜像。
docker search tomcat:搜索tomcat镜像,可选择适合的版本下载。
docker pull NAME[:TAG]:拉取选择的镜像。默认拉取最新,latest
docker rmi 名称/镜像id:删除指定镜像。
docker rmi $(docker images -q):删除所有镜像。
docker save 镜像名称:保存镜像。
docker load :加载镜像。
docker tag : 设置镜像标签。
docker commit:更新镜像。在运行的容器内部执行更新操作,然后退出,commit。
docker build:构建镜像。
构建镜像:
通过Dockerfile构建一个新的镜像。将springboot系列代码打包构建成一个可独立提供服务的容器。
1、打包 springboot 系列代码成一个可执行的 jar
后续springboot会涉及到项目打包,分离配置文件、lib包等。如下 idea 打包。eclipse 使用run as maven install。
待打包执行完毕,在项目target目录下有一个jar 包。
2、将jar 包上传到服务器上指定的目录
此处我在用户目录下新建了myimages 目录,工具我选择的是 Xshell ,直接点击文件传输按钮将 jar 包拖到服务器指定目录即可。
3、新建 Dockerfile 文件
4、编写 Dockerfile
Dockerfile 文件中包含了一组指令,docker在构建镜像依据这些指令来构建。本章涉及几个简单的指令。
# 基础镜像
FROM java:8
# 作者
MAINTAINER Ron
# 临时目录
VOLUME /tmp
# 复制宿主机的jar 到 容器的指定目录
COPY ./springboot-0.0.1-SNAPSHOT.jar app.jar
# 暴露端口 只是建议
EXPOSE 8080
# 容器启动时执行的操作
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
5、执行 docker build 命令:
-t : 指定镜像的名字和标签。
. : 最后的 . 表示Dockerfile 所在的目录。
运行 docker images 可以查看刚刚构建的镜像:
6、创建容器:
使用刚刚构建的镜像创建一个容器。指定主机端口 4000 (即项目访问端口)
-d:后台运行容器 并返回容器id 即自动守护式容器
--name:指定容器的名称
-p:端口号映射,主机 : 容器
7、进入容器:
容器可以理解为一个简单的Linux系统,既然容器 -d 是后台运行,那么可以进入容器。
命令:docker exec -it 容器id/容器名称
8、容器退出:
exit: 退出并关闭
Ctrl + P + Q : 退出未关闭
9、测试:ip:4000/api
此时,上传的springboot项目代码已经在docker上独立的容器中运行,可提供服务。
至此,使用docker自己构建的镜像已运行成独立的容器,可对外界提供服务。
总结:
1、镜像仓库地址根据自己网络环境选择。
2、docker images 相关命令。
3、Dockerfile的编写。
3、docker build 构建镜像。不能省略最后面的点 “ . ”.
4、构建守护式容器,后台运行。
5、容器的进入与退出。
个人学习分享
更多 springboot、springcloud、docker 文章,关注微信公众号吧: