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