美文网首页
docker之修改镜像内部并上传docker hub

docker之修改镜像内部并上传docker hub

作者: python与数据分析 | 来源:发表于2020-03-09 11:52 被阅读0次

    应用场景:昨天在用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

    好了,可以在当前服务器上启动镜像,可以运行了。

    相关文章

      网友评论

          本文标题:docker之修改镜像内部并上传docker hub

          本文链接:https://www.haomeiwen.com/subject/wrqudhtx.html