先制作自己的docker镜像,使用commit方式也可以制作镜像,我这里采用
通过编写Dockerfile命令脚本进行生成镜像。
1.jar包打包成docker镜像并推送
将jar包和Dockerfile放在服务器同级目录下
dockerfile:
# 基础镜像
FROM openjdk:8-jre
# author
MAINTAINER lgn
# 挂载目录 运行容器时可以从本地主机或其他容器挂载数据卷,一般用来存放数据库和需要保持的数据等volume.用以在用户忘记启动时指定-v参数也可以保证容器的正常运行如使用了-v 已-v为准
VOLUME /home/dockerflie
# 创建目录
RUN mkdir -p /home/dockerflie
# 指定路径
WORKDIR /home/dockerflie
# 复制jar文件到路径 COPY将主机的文件复制到镜像内
COPY spring-swagger-0.0.1-SNAPSHOT.jar /home/dockerflie/spring-swagger-0.0.1-SNAPSHOT.jar
# 启动系统服务
ENTRYPOINT ["java","-jar","spring-swagger-0.0.1-SNAPSHOT.jar"]
将项目打包成镜像(在jar包目录下)
docker build -f Dockerfile -t swagger:1.0.1 .
查看一下镜像:
登录到私服
docker login -u admin -p Harbor12345 http://120.48.54.67:8282/
如果报错:
Error response from daemon: Get "https://120.48.54.67:8282/v2/": http: server gave HTTP response to HTTPS client
Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误。
修改 /usr/lib/systemd/system/docker.service 中的 ExecStart 选项,加入 --insecure-registry {docker 私有镜像库 IP} --ipv6=false,,加入–insecure-registry 与 --ipv6 属性。形如:
--insecure-registry 120.48.54.67:8282 --ipv6=false
修改好后重启docker 服务
systemctl daemon-reload
systemctl restart docker
用tag命令使镜像规范化(登录harbor平台中找到规范)
docker tag swagger:1.0.1 120.48.54.67:8282/k8spro/swagger:1.0.1
推送镜像
去harbor平台里面看一下推送的语法
docker push 120.48.54.67:8282/k8spro/REPOSITORY[:TAG]
docker push 120.48.54.67:8282/k8spro/swagger:1.0.1
去harbor控制台看看:
vue也是同理
dockerfile:
# 基础镜像
FROM nginx
# author
MAINTAINER ruoyi
# 挂载目录
VOLUME /home/ruoyi/projects/ruoyi-ui
# 创建目录
RUN mkdir -p /home/ruoyi/projects/ruoyi-ui
# 指定路径
WORKDIR /home/ruoyi/projects/ruoyi-ui
# 复制conf文件到路径
COPY ./conf/nginx.conf /etc/nginx/nginx.conf
# 复制html文件到路径
COPY ./html/dist /home/ruoyi/projects/ruoyi-ui
docker build -f dockerfile -t vue:1.0.1 .
docker tag vue:1.0.1 120.48.54.67:8282/k8spro/vue:1.0.1
docker push 120.48.54.67:8282/k8spro/vue:1.0.1