DockerFile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #依赖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 上传到虚拟机
1 2 3 4
| #-f 镜像规则 #-t 打成什么样的镜像 #. 代表跟dockerFile 同路径下的上面指定的资源 renren-fast.jar docker build -f DockerFile -t docker.io/jhj/test:v1.0 .
|
1 2
| #通过以下命令就可以查看到刚刚打包的镜像 docker images
|
使用
docker-compose
1 2 3 4 5 6 7 8
| version: '3' services: renren-fast: image: renren/fast ports: - "8080:8080" environment: - spring.profiles.active=dev
|
可以将打包好的镜像推送到远程仓库
1 2 3 4
| #登录远程 docker login -u name -p password #推远程 docker push docker.io/jhj/test:v1.0
|
将正在运行的容器打包成镜像
1 2 3 4 5 6 7 8
| 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会自动解压
阿里云操作
1 2 3 4 5 6 7
| # 登录阿里云,密码就是开通镜像仓库时 的密码 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
|
作者声明