生活随笔
收集整理的這篇文章主要介紹了
docker打包
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
docker 打包基本步驟
1. 程序準備,使用程序所在文件夾的父目錄為基準目錄,在此目錄下新建文件(vi Dockerfile,名字一定不能錯)2. 示例內容如下(以下內容以c程序為案例,Dockerfile內容大同小異,常用命令只有這幾個)
2.1 FROM 192.168.1.212/baseimage/centos:7(FROM+空格+基礎鏡像:版本,基礎鏡像就是程序的運行環境,java依賴jre環境,c依賴gcc或者其他,基礎環境鏡像有多種,可以選擇最適合的,有的c程序可能會缺庫,但是最好選擇最小并且功能齊全的基礎鏡像,避免打成的鏡像過大),目前測試環境中存在的基礎鏡像有如下幾個,其他不存在的可以自己下載、標記,然后上傳至公司的harbor鏡像倉庫,方便大家共同使用:
2.2 ADD 1.0.0.3/ /app/(ADD+空格+程序所在的目錄+/+空格+/+打包成鏡像后的程序目錄+/),這句命令的意思是將整個程序的目錄添加到基礎鏡像里面去,并命名為app,命名可以隨便取,不一定是app
2.3 ENV ZOOKEEPER 192.168.1.249:2181(ENV+空格+ZOOKEEPER+空格+zk的ip及端口號),這句命令的意思是給鏡像設置環境變量,變量名為ZOOKEEPER,值為192.168.1.249:2181,用于imagedb或者c的庫讀取,然后從zk中獲取參數,根據實際環境,填寫zookeeper地址
2.4 RUN echo ‘Asia/Shanghai’ >/etc/timezone(RUN+空格+echo+空格+‘Asia/Shanghai’+空格+>/etc/timezone),非必須,只是為了在k8s調度時,設置時區為上海,校準容器內的時間與宿主機的時間同步
2.5 WORKDIR /app/ (WORKDIR+空格+/+打包成鏡像后的程序目錄+/)設置工作目錄,就是啟動程序的命令在這個目錄下,后面的/app/是第二步中的自己定義的,一定要一樣,建議是ADD的時候不自己取名,打包進基礎鏡像里面就是原始目錄名
2.6 RUN cmd(RUN+空格+cmd),就是執行難一段shell命令,根據需求添加,命令在打包的時候執行,但是不是程序啟動命令
2.7 ENTRYPOINT /bin/sh xxxx.sh(ENTRYPOINT+空格+/bin/sh+空格+xxx.sh) 啟動命令,這里也可以不寫,可以在啟動容器的時候指定docker run -it --rm --name test --entrypoint java test:1.0 -jar xxx.jar命令的意思是執行test:1.0這個鏡像,鏡像取名為test,–rm的意思是鏡像退出后自動刪除,–entrypoint java指定啟動命令,鏡像名后面-jar xxx.jar都是java命令的參數,c也類似,更加深的用法可以百度
3. 開始打包docker build -t 192.168.1.212/gridknow/test:1.0.0 .(最后是空格加點不能丟了),命名類似這樣,要是沒報錯就說明打包成功了。
4. 打包.tar
docker save -o test_v1.0.0.tar 192.168.1.212/gridknow/test:1.0.0
5. 上傳 .tar
docker load<test_v1.0.0.tar
6. 停止docker鏡像
6.1 docker pa
6.2 docker stop CONTAINER ID
6.3 docker ps -a
6.4 docker rm CONTAINER ID
6.5 docker run -d -it -p 8001:8001 -v/etc/zookeeper.properties:/etc/zookeeper.properties -m 1g --rm --name test entrypoint java 192.168.1.212/gridknow/test:1.0.0 -jar test-1.0-ANAPSHOT.jar
總結
以上是生活随笔 為你收集整理的docker打包 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。