Dockerfile和dockerpush.sh文件

文件结构

执行过程

1.首先编写好Dockerfile文件,自定义容器设置

2.使用docker build构建镜像到本地

3.使用dockerpush.sh将本地的镜像上传到云镜像仓库

4.eureka-server.sh执行脚本运行镜像,如果本地没有镜像则会到云镜像仓库上面拉取镜像,然后运行镜像。

一、Dockerfile文件

Dockerfile文件是用来创建镜像的,可以在Dockerfile文件中配置镜像的相关参数,详细介绍

#构建镜像,镜像名为hub.c.163.com/mockup/wangyk/eureka-server:1.0.0
docker build -t hub.c.163.com/mockup/wangyk/eureka-server:1.0.0 .
#制作镜像的文件
#选择一个镜像作为基础镜像
FROM hub.c.163.com/library/java:latest
#镜像的所有者(可以省略)
MAINTAINER wangyk [email protected]
#容器运行时监听的端口
EXPOSE 8761
#容器暴露ssh端口
EXPOSE 22
#修改docker的时区,docker的时区默认为utc,与北京时间相差8小时
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#将jar包放入容器中,ADD target/*.jar eureka-server.jar
ADD eureka-server-1.0.0.jar eureka-server.jar
#运行jar
ENTRYPOINT  java -Djava.security.egd=file:/dev/./urandom  -Xms64m -Xmx64m -XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=64M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/javadump -jar /eureka-server.jar

Dockerfile文件的指令集,不区分大小写

  1. FROM:用于指定基础镜像
  2. MAINTAINER:维护者的信息
  3. COPY:复制文件到镜像(相对路径为Dockerfile)
  4. WORKDIR:设置当前工作路径,可设置多次,配合ADD,RUN,ENTRYPOINT使用
  5. RUN:用于容器内部执行命令
  6. EXPOSE:指定对外开发的端口
  7. ADD:添加文件到容器
  8. ENTRYPOINT:ENTRYPOINT ["executable", "param1", "param2"] 执行命令。只能有一个,最后一个生效
  9. CMD:CMD ["executable","param1","param2"]。启动程序默认执行的命令

二、dockerpush.sh文件

将Dockerfile制作好的镜像文件上传至镜像仓库,c.163.com(网易云镜像仓库),hub.docker.com(国外镜像仓库)

#!/bin/bash
#首先需要登录账号
sudo docker login --username=wangyk--password=wangyk hub.c.163.com
#$1是传入的版本号参数,然后将本地的镜像上传到网易云镜像仓库
sudo docker push hub.c.163.com/mockup/wangyk/eureka-server:$1

三、eureka-server.sh文件,写成脚本便于运行

用来运行镜像

docker rm -f hub.c.163.com/mockup/wangyk/eureka-server
docker rmi -f hub.c.163.com/mockup/wangyk/eureka-server:1.0.0
docker run -p 8761:8761 --name eureka-server-v /usr/local/logs/:/var/log/lang/ hub.c.163.com/mockup/wangyk/eureka-server:1.0.0 -d

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章