應(yīng)用場(chǎng)景:昨天在用docker部署項(xiàng)目時(shí)卿城,生成鏡像并啟動(dòng)。但是當(dāng)我又修改了項(xiàng)目時(shí)哟忍,再刷新項(xiàng)目狡门,并未更新陷寝。隨后開始排查問題,下面將解決思路及用到的命令記錄下來融撞。
先說解決方式:
由于利用docker部署,其實(shí)在docker內(nèi)部拷貝了一份項(xiàng)目粗蔚,而你修改源目錄的項(xiàng)目時(shí)不起作用的尝偎,替換一下就好了
圖中/usr/src/app就是我將項(xiàng)目存到docker中的地址,將docker中的項(xiàng)目替換成更新的源目錄項(xiàng)目
sudo docker cp /home/ubuntu/originblog-master/app/ 你的容器ID:/usr/src
替換成功后鹏控,重新啟動(dòng)下鏡像致扯,更新的內(nèi)容就生效了。
下面是解決問題時(shí)用到的命令(可忽略)
1当辐、Docker 刪除鏡像
①. 刪除前需要保證容器是停止的 stop
②. 需要注意刪除鏡像和容器的命令不一樣抖僵。 docker rmi ID ,其中 容器(rm) 和 鏡像(rmi)
③. 順序需要先刪除容器
2、docker修改鏡像名稱
docker tag 鏡像ID REPOSITORY:TAG
3缘揪、解決Docker無法刪除鏡像 - image is referenced in multiple
docker rmi ace-gate:v9(加上TAG就行了)
4耍群、docker鏡像內(nèi)的文件互相拷貝
將本地文件拷貝到docker 鏡像內(nèi)
docker cp /Users/howey/Documents/apache-maven-3.5.2/ 749056ea1637:/opt
docker cp 本地路徑 容器Id或name:容器目錄
將docker內(nèi)文件拷貝到本地文件夾內(nèi)
docker cp 749056ea1637:/Users/howey/Documents/apache-maven-3.5.2 /opt/
docker cp 容器Id:本地路徑 鏡像路徑
5、如何將自己的鏡像上傳到Docker hub上
①.首先需要擁有自己的Docker hub賬號(hào)找筝,注冊(cè)地址
②.使用Docker hub賬號(hào)在驗(yàn)證本地登錄
docker login
③.先docker images看看本地的鏡像
如果REPOITORY的名不是你Docker hub賬號(hào)和倉庫蹈垢,即Docker ID/倉庫名,是上傳不成功的袖裕,當(dāng)然可以使用下面命令更改
docker tag 鏡像ID 用戶名稱/鏡像源名(repository name):新的標(biāo)簽名(tag)
④ 提交修改曹抬,生成一個(gè)新版本,-m為添加注釋急鳄;-a是作者谤民;后面546598027dda 是容器ID;后面跟的是你要生成的鏡像的名字疾宏。
docker commit -m "Added a new image" -a "cherich" 546598027dda cherichsun/originblog:0.1
④.使用docker push命令將鏡像上傳到docker hub的倉庫
docker push <hub-user>/<repo-name>:<tag>
⑤.登錄到自己的Docker hub上驗(yàn)證
6张足、進(jìn)入容器內(nèi)部
docker exec -it blog /bin/sh(可能docker版本的原因,我用這個(gè)命令可以進(jìn)去)
docker exec -it blog /bin/bash
7坎藐、如何將自己的鏡像拉到服務(wù)器上
進(jìn)入你自己的docker hub
docker pull cherichsun/originblog:0.1
好了兢榨,可以在當(dāng)前服務(wù)器上啟動(dòng)鏡像,可以運(yùn)行了顺饮。