docker之修改鏡像內部並上傳docker hub

應用場景:昨天在用docker部署項目時,生成鏡像並啓動。但是當我又修改了項目時,再刷新項目,並未更新。隨後開始排查問題,下面將解決思路及用到的命令記錄下來。

先說解決方式:

由於利用docker部署,其實在docker內部拷貝了一份項目,而你修改源目錄的項目時不起作用的,替換一下就好了
我的Dockerfile
圖中/usr/src/app就是我將項目存到docker中的地址,將docker中的項目替換成更新的源目錄項目

sudo docker cp /home/ubuntu/originblog-master/app/ 你的容器ID:/usr/src

替換成功後,重新啓動下鏡像,更新的內容就生效了。

下面是解決問題時用到的命令(可忽略)

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鏡像內的文件互相拷貝
將本地文件拷貝到docker 鏡像內
docker cp /Users/howey/Documents/apache-maven-3.5.2/ 749056ea1637:/opt
docker cp 本地路徑 容器Id或name:容器目錄
將docker內文件拷貝到本地文件夾內
docker cp 749056ea1637:/Users/howey/Documents/apache-maven-3.5.2 /opt/
docker cp 容器Id:本地路徑 鏡像路徑
5、如何將自己的鏡像上傳到Docker hub上

①.首先需要擁有自己的Docker hub賬號,註冊地址

②.使用Docker hub賬號在驗證本地登錄

docker login

③.先docker images看看本地的鏡像

如果REPOITORY的名不是你Docker hub賬號和倉庫,即Docker ID/倉庫名,是上傳不成功的,當然可以使用下面命令更改

docker tag 鏡像ID 用戶名稱/鏡像源名(repository name):新的標籤名(tag)

④ 提交修改,生成一個新版本,-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上驗證

6、進入容器內部
 docker exec -it  blog /bin/sh(可能docker版本的原因,我用這個命令可以進去)
 docker exec -it  blog /bin/bash
7、如何將自己的鏡像拉到服務器上

進入你自己的docker hub

docker pull cherichsun/originblog:0.1

image.png
好了,可以在當前服務器上啓動鏡像,可以運行了。

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