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

 

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