学习目的:
通过docker将个人项目修改为容器化部署的形式,实现CI/CD功能。
CI/CD:
持续集成Continuous Integration
持续交付continuous delivery
工厂里的装配线以快速、自动化、可重复的方式从原材料生产出消费品。同样,软件交付管道以快速、自动化和可重复的方式从源代码生成发布版本。如何完成这项工作的总体设计称为“持续交付”(CD)。启动装配线的过程称为“持续集成”(CI)。
挂载部署
1.jar包上传到服务器的指定目录,如/root/docker/jar
命令:
cd 进入目录
pwd查看当前目录
ls列出文件名
2.通过docker pull openjdk:8获取镜像
$ docker pull openjdk:8
8: Pulling from library/openjdk
bd8f6a7501cc: Already exists
44718e6d535d: Already exists
efe9738af0cb: Already exists
f37aabde37b8: Already exists
b87fc504233c: Pull complete
cc62143cb8cc: Pull complete
646a47c88e43: Pull complete
Digest: sha256:9c973bec7c011abcd4c64c5d8601073d26c9d6dd17ca58ea0df5cda98f0e5b05
Status: Downloaded newer image for openjdk:8
docker.io/library/openjdk:8
3.编写docker-compose.yml文件
build 指定dockerfile所在文件夹的路径 context指定dockerfile文件所在路径 dockerfile指定文件的具体名称
container_name 指定容器名称
volumes 挂载路径 z是用来设置selinux,或者直接在linux通过命令临时关闭或者永久关闭
ports 暴露端口信息
networks是用来给容器设置固定的ip
4.执行docker-compose up -d启动jar包
5.docker ps查看
6.docker logs查看日志
docker logs [OPTIONS] CONTAINER
7.docker inspect container查看详细信息
8.在browser中输入jar包项目的访问地址,就可以看到运行的项目
构建镜像部署
1.将jar包上传到服务器的指定目录,比如/root/docker/jar。
2.在该目录下创建Dockerfile文件(touch dockerfile),通过vim等编辑工具在Dockerfile中编辑以下内容
FROM java:8
MAINTAINER YHF
LABEL description=”learn docker”
ADD xxx.jar
EXPOSE 8001
ENTRYPOINT [“java”,”-jar”,”xxxx.jar”]
FROM java:8 指定所创建镜像的基础镜像
MAINTAINER yhf 指定作者为yhf
LABEL 为生成的镜像添加元数据标签信息
ADD xxxx.jar 添加内容到镜像
EXPOSE 8080 声明镜像内服务监听的端口
ENTRYPOINT 指定镜像的默认入口命令,支持两种格式ENTRYPOINT[“java”,”-jar”,”xxxx.jar”];ENTRYPOINT java –jar xxxx.jar。注意每个dokcerfile中只能有一个ENTRYPOINT,如果指定多个只有最后一个生效。
3.docker build构建镜像
4.编写docker-compose.yml文件
5.执行docker-compose up –d直接启动基于文件构建的自定义镜像
重构镜像:docker-compose build
6.docker ps查看