DockerFile

#依赖java8
FROM java:8
#暴露8080
EXPOSE 8080

#挂载目录
VOLUME /tmp
#linux 将renren-fast.jar 复制到app.jar
#不确定jar名字可以写*.jar 即为所以
ADD renren-fast.jar  /app.jar
#更新时间
RUN bash -c 'touch /app.jar'
#容器已启动 默认运行命令 java -jar app.jar
#生产环境启动 可以写#容器已启动 默认运行命令 java -jar app.jar 
#ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod"]
#解决OOM问题 指定内存初始128M 最大300M ENTRYPOINT ["java","-jar","-Xms128m","-Xmx300m","/app.jar","--spring.profiles.active=prod"]
ENTRYPOINT ["java","-jar","/app.jar"]

idea maven 打包

先clean
在这里插入图片描述
再install
在这里插入图片描述
打成的jar
在这里插入图片描述

制作镜像

将DockerFile 和 jar 上传到虚拟机

#-f 镜像规则
#-t 打成什么样的镜像
#. 代表跟dockerFile 同路径下的上面指定的资源 renren-fast.jar
docker build -f DockerFile -t docker.io/jhj/test:v1.0 .

在这里插入图片描述

#通过以下命令就可以查看到刚刚打包的镜像
docker images

使用

docker-compose

version: '3'
services:
  renren-fast:
    image: renren/fast
    ports:
      - "8080:8080"
    environment:
      - spring.profiles.active=dev    

可以将打包好的镜像推送到远程仓库

#登录远程 
docker login -u name -p password
#推远程
docker push docker.io/jhj/test:v1.0

将正在运行的容器打包成镜像

docker commit -a “leifengyang” -m “nginxxx” 容器 id mynginx:GA-2.0
#docker commit [OPTIONS] CONTAINER 
#[REPOSITORY[:TAG]]
#OPTIONS 说明:
#1) -a :提交的镜像作者;
#2) -c :使用 Dockerfile 指令来创建镜像;
#3) -m :提交时的说明文字;
#4) -p :在 commit 时,将容器暂停

不能打包挂载的目录
如果要进行挂载打包 需要手动编写dockerFile 然后docker build
举例如下:
Add会自动解压
在这里插入图片描述

阿里云操作

# 登录阿里云,密码就是开通镜像仓库时 的密码
docker login --username=qwertyuiopasdf_aa registry.cn-hangzhou.aliyuncs.com
# 拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/atguigumall/gulimall-nginx:v1.0
# 推送镜像
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/atguigumall/gulimall-nginx:v1
docker push registry.cn-hangzhou.aliyuncs.com/atguigumall/gulimall-nginx:v1

作者声明

如有问题,欢迎指正!
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐