最代碼廣告位
最代碼人間蒸發的gravatar頭像
最代碼人間蒸發2019-08-29 16:25:57
docker入門——明明一個開發,卻走上了運維的路。

最近沒啥事,之前聽老牛想搞docker,我也不太明白,這是個啥東西。

介紹一下,專業解釋請看->https://blog.csdn.net/deng624796905/article/details/86493330,***,一大坨,我不是個有耐心的人,所以就看了一點點,再去問問我認識的這些老頭子,交流一下!于是,就我個人而言,docker,就是一個虛擬機。大家平時在使用vm等虛擬機,創建linux系統,然后再在這個系統里邊安裝各種運行項目所需的環境,最后打包項目,啟動項目。docker跟這個大同小異,不知道我的感覺對不對,你可以在虛擬機上創建多個linux系統,創建過程中你需要對其分盤,創建密碼等等一些列操作,而docker就是可以創建多個容器。你在你的服務器上需要安裝mysql,jdk等環境,同樣docker容器也需要!但最關鍵的區別在于——一臺新的服務器,你需要重新安裝新的環境,項目也需要重新打包,而docker不用,你可以把之前的容器創建為新的鏡像,在新的服務器,安裝docker,再運行這個鏡像就OK了!

設想,你公司的項目做好了,接下來就是給甲方大大去部署這個項目,而你甲方大大只會給你提供一臺服務器,而你去了他們公司,只需要拿著你的鏡像,給他服務器安裝一個docker,運行就ok了,是不是非常省事呢?哦~具體我也不太清楚,方案b就是,你把你的容器生成鏡像后,推送到遠端,然后從遠端拉取鏡像,而這個也絕對是可以實現的,老牛目前應該就是這個設想,把最代碼的代碼下載改良成為這種,這樣牛牛們就可以不用因為環境問題導致下載下來的項目因為環境不一樣跑不通,而破口大罵作者的代碼有問題了。

好了進入正題——以一個boot項目為列子。

1.將打包好的jar包,上傳到服務器下,

docker入門——明明一個開發,卻走上了運維的路。

2.安裝docker,在contos7下,并啟動

sudo yum -y install docker-ce
sudo systemctl start docker

3.在剛剛gbq這個文件下,也就是和jar包的相同位置,創建Dockerfile文件,編輯

FROM azul/zulu-openjdk:8
VOLUME /gbq
ADD docker_test.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

https://www.dwhd.org/20151202_113538.html?lan=cn&lan=cn   Dockerfile詳解。

4.生成鏡像,注意:空格 .  不可省略

sudo docker build -t springbootdemo .//生成一個叫springbootdemo的鏡像
docker images //查看你已有鏡像

5.使用容器啟動這個鏡像

sudo docker run -d -p 8080:8082 springbootdemo  // 8080:代理8082  8082:springboot項目端口
docker ps //查看正在運行的容器
docker ps -a //查看所有容器

好了,使用docker啟動項目成功??匆幌滦Ч?,跟linux   后臺啟動jar包是一個效果

docker入門——明明一個開發,卻走上了運維的路。為了更好的查看,我也給大家看一下我服務器的ip(內網,各位訪問不了)

docker入門——明明一個開發,卻走上了運維的路。

項目啟動成功了,接下來,我給大家把這個服務器下的運行docker容器,保存為一個新的鏡像,再另外一個服務器,啟動并且能夠訪問!

7.先把這個容器停下來

docker stop fe0ca055a52d  //后邊是你的容器id  通過docker ps查看,如下圖

 

docker入門——明明一個開發,卻走上了運維的路。8.將容器轉換為一個新的鏡像

docker commit fe0ca055a52d bootdemo  //fe0ca055a52d 容器id  bootdemo 新的鏡像名稱
docker images //查看是否生成了新的鏡像,如下圖.

docker入門——明明一個開發,卻走上了運維的路。9.把這個鏡像保存為一個tar格式文件

docker save -o test.tar bootdemo   //test.tar 新生成的文件  bootdemo剛才創建鏡像名
ls   //可以看到生成了 test.tar文件

10.把test.tar復制到另外一個安裝有docker的服務器下,安裝過程請參考第2步,如下圖

docker入門——明明一個開發,卻走上了運維的路。

docker入門——明明一個開發,卻走上了運維的路。

11.加載這個鏡像

docker load -i test.tar
docker images //查看鏡像是否加載成功   如下圖

docker入門——明明一個開發,卻走上了運維的路。

12.運行這個鏡像

sudo docker run -d -p 8081:8082 bootdemo  // 8081:代理8082  8082:springboot項目端口
docker ps //查看正在運行的容器

docker入門——明明一個開發,卻走上了運維的路。

 

至此結束,我也是剛剛研究,所以有大牛覺得不對的地方,請指點!另外還是那句話,有問題群里找我,加我q,都可以。

最后再比比倆句,如果每個牛牛都安裝了docker,而下載的代碼文章里,都有這個鏡像.tar文件,那么牛牛就可以直觀的看到這個項目到底能不能正常運行了,運行的效果是什么樣,最后再考慮要不要選擇下載這個源碼,這樣就可以防止牛幣白白浪費啦!

docker可不僅局限于這個例子哦,它還可以裝好多的東西,只是大致就是這么一個流程!

 

好了,到此結束,拜了個拜!


打賞

已有3人打賞

temptation的gravatar頭像每天都要進步的gravatar頭像最代碼官方的gravatar頭像
最近瀏覽
kinggode LV132019年12月9日
月亮月亮月亮星星
仙身的羊 LV102019年11月22日
月亮月亮星星星星
寂寞古蘭 LV52019年11月11日
月亮星星
ivancolin LV92019年11月7日
月亮月亮星星
luo920571444 LV22019年11月5日
星星星星
shanjunkai123 LV32019年11月5日
星星星星星星
無知者2019年10月29日
暫無貢獻等級
kindjie LV22019年10月18日
星星星星
風間千月 LV122019年10月17日
月亮月亮月亮
溫濤溫濤溫濤 LV82019年10月16日
月亮月亮
頂部客服微信二維碼底部
>掃描二維碼關注最代碼為好友掃描二維碼關注最代碼為好友
2008大乐透走势图