Docker操作

Docker操作

Docker基本操作

# 删除 docker 容器
docker rm 关键字(名字、容器ID)
# 删除docker所有容器
docker ps -a  -q | xargs docker rm 
docker rm -f $(docker ps -qa) # 删除 docker镜像 
docker rmi 关键字(名字、容器ID)
# 删除docker所有镜像 
docker images -a  -q | xargs docker rmi 
docker rm -f $(docker images -a  -q) # 容器内数据复制到docker主机
docker cp # 启动tomcat并且设置对外暴露端口
docker run -it -p 8888:8080 tomcat # 进入容器跟目录
docker exec -it ID /bin/bash # 容器内文件复制到宿主机
docker cp ID:/1.txt /root/1.txt # 容器打镜像
docker commit -a="CHENYB -m="chen test" ID atquiqu/mytomcat:test1.0 # 查看容器详情
docker inspect ID # 镜像变更历史
docker history ID 
  • 创建数据容器卷

    • 命令创建
    • # 创建数据容器卷,启动容器,并且在容器内建立与宿主机共享文件夹‘:’前为宿主机文件夹后为容器内文件夹
      docker run -it -v /centos7Data:/hostData ID# 创建数据容器卷,但是容器内只读权限,‘ro’red only 权限智能限制容器,不能限制宿主机
      docker run -it -v /centos7Data:/hostData:ro ID
    •  Dockerfile 创建 
      • Docker脚本内容
      • # volume test
        FROM centos
        VOLUME ["/hostData1","/hostData2"]
        CMD echo "finished,--- success1 "
        CMD /bin/bash
      • 执行Dodkcerfile 脚本
        • 执行根目录下/mydocker下的Dockerfile文件,创建daokcer镜像,启动镜像后会在宿主机默认位置/var/lib/docker/volumes/?/_data 创建对应的共享文件夹,‘docker inspect’命令可以查看,命令行最后一个'.'不要忽略
        • docker build -f /mydocker/Dockerfile -t CHENYB/centos:1 .  
      • 容器数据复制
        • docker run -it --name data2 --volumes-from data1 ID
          docker run -it --name data3 --volumes-from data1 ID

        • 多容器之间的复制是互相的,1、2、3之间可以互相复制,少了哪个容器后复制仍会继续,容器卷共享生命周期一直持续到没有容器使用为止
  • Dockerfile 保留字指令

    1. FROM 基础新镜像基于的镜像

    2. MAINTAINER 作者+作者邮箱

    3. RUN 容器构建时需要运行的命令 

    4. EXPOSE 对外暴露的端口号

    5. WOEKDIR 登录后进入的目录,没有指定默认为根目录

    6. ENV 在构建过程中设置环境变量,可以被引用

    7. ADD COPY+解压缩

    8. COPY 复制,源路径的文件复制到新的一层镜像内路径 例如:1、COPY src mysrc;2、COPY[“src”“mysrc”]两种写法

    9. VOLUME 容器数据卷,用户数据保存和持久化工作

    10. CMD 指定一个容器启动时要执行的命令,Dockerfile中可以有多个CMD指令,但是只有最后一个生效,CMD会被docker run 之后的参数替换掉

    11. ENTRYPOINT 指定一个容器启动是运行的命令,ENTRYPOINT的目的和CMD一样,都是指定容器启动程序及参数,不会被docker run之后的参数替换,会追加

    12. ONBUILD 当构建一个被继承的Dockerfile是运行命令,父镜像在被子镜像继承后父镜像的ONBUILD被触发

  • 相近保留字指令详解

    • CMD与ENTRYPOINT 区别脚本

    • FROM centos:7
      RUN yum install -y curl
      # update
      #CMD ["curl","-s","http://www.baidu.com"]
      # add
      #ENTRYPOINT ["curl","-s","http://www.baidu.com"]
    • docker run -it mycentos:2.3 -i 启用CMD保留字指令时运行该命令会将参数‘-i’替换["curl","-s","http://www.baidu.com"] 命令,导致单独执行“-i”linux指令,会报错无法执行

    • docker run -it mycentos:2.3 -i 启用ENTRYPOINT留字指令时运行该命令会将参数‘-i’追加["curl","-s","http://www.baidu.com"] 命令后方执行,完整指令["curl","-s","http://www.baidu.com","-i"] 响应结果

    • [root@192 mydocker]# docker run -it mycentos:2.3 -i 
      HTTP/1.1 200 OK
      Accept-Ranges: bytes
      Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
      Connection: keep-alive
      Content-Length: 2381
      Content-Type: text/html
      Date: Tue, 27 Jun 2023 14:27:46 GMT
      Etag: "588604c1-94d"
      Last-Modified: Mon, 23 Jan 2017 13:27:29 GMT
      Pragma: no-cache
      Server: bfe/1.0.8.18
      Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/<!DOCTYPE html>
      <!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class=s_ipt value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=百度一下 class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class=mnav>新闻</a> <a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj_trmap class=mnav>地图</a> <a href=http://v.baidu.com name=tj_trvideo class=mnav>视频</a> <a href=http://tieba.baidu.com name=tj_trtieba class=mnav>贴吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class=lb>登录</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登录</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">更多产品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>关于百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>&copy;2017&nbsp;Baidu&nbsp;<a href=http://www.baidu.com/duty/>使用百度前必读</a>&nbsp; <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a>&nbsp;京ICP证030173号&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
      
    • Dockerfile脚本中,多个ENTRYPOINT保留字指令与CMD一样,只会执行最后一个

    • update
      # add
      CMD ["curl","-s","http://www.baidu.com"]
      # add
      ENTRYPOINT ["curl","-s","www.qq.com"]
    • 如果Dockerfile脚本中同时存在CMD与ENTRYPOINT保留字指令,两者都会生效,优先执行ENTRYPOINT保留字指令

  • Dockerfile ONBUILD促发脚本
    • 被继承的父级镜像的Dockerfile脚本

    • ROM centos:7ONBUILD RUN echo "father hello!"
      CMD echo "1"
    •  继承父级脚本构建的子镜像Docker脚本
    • FROM myonbuildtest
      CMD ["echo","son!!!"]
    • 子镜像构建时,会触发父Dockerfile脚本中的ONBUILD保留字指令

    •  
      [root@192 mydocker]# docker build -f ./Dockerfile3 -t myonbuildtest .
      [+] Building 15.3s (5/5) FINISHED                                                                      
      => [internal] load build definition from Dockerfile3                                             0.0s
      => => transferring dockerfile: 157B                                                              0.0s
      => [internal] load .dockerignore                                                                 0.0s
      => => transferring context: 2B                                                                   0.0s
      => [internal] load metadata for docker.io/library/centos:7                                      15.3s
      => CACHED [1/1] FROM docker.io/library/centos:7@sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315  0.0s
      => => resolve docker.io/library/centos:7@sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711  0.0s
      => exporting to image                                                                            0.0s
      => => exporting layers                                                                           0.0s
      => => writing image sha256:6be84bd208a361a45fd7ec9c8f4120905b148ed25aa4b22ea6060910908e618f      0.0s
      => => naming to docker.io/library/myonbuildtest                                                  0.0s[root@192 mydocker]# docker build -f ./Dockerfile4 -t myonbuildtest2 .
      [+] Building 0.0s (6/6) FINISHED                                                                       
      => [internal] load build definition from Dockerfile4                                             0.0s
      => => transferring dockerfile: 136B                                                              0.0s
      => [internal] load .dockerignore                                                                 0.0s
      => => transferring context: 2B                                                                   0.0s
      => [internal] load metadata for docker.io/library/myonbuildtest:latest                           0.0s
      => [1/1] FROM docker.io/library/myonbuildtest                                                    0.0s
      => CACHED [2/1] RUN echo "father hello!"                                                         0.0s
      => exporting to image                                                                            0.0s
      => => exporting layers                                                                           0.0s
      => => writing image sha256:86a69e7f1bf75a7acbe9755bbfc17a09b7823af63005444095bded6bd90f5789      0.0s
      => => naming to docker.io/library/myonbuildtest2
      
  •  推送本地镜像到云端

    • # 这里推送到阿里云,在阿里云上都有详细说明
      docker login --username=tb99961359 registry.cn-hangzhou.aliyuncs.com
      docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/chenyongbin/test:[镜像版本号]
      docker push registry.cn-hangzhou.aliyuncs.com/chenyongbin/test:[镜像版本号]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内核态、用户态概念

一、MTU MTU概念 MTU&#xff08;Maximum Transmission Unit&#xff0c;最大传输单元&#xff09;是指在网络中传输的数据包的最大长度限制&#xff0c;它是一个重要的网络参数&#xff0c;影响着网络的可靠性、稳定性和性能。在TCP/IP协议栈中&#xff0c;MTU涉及到内核态和…

Pthreads程序实现任务队列

主线程启动用户指定数量的线程&#xff0c;这些线程进入条件等待状态。 主线程生成一些任务&#xff08;一定计算量&#xff09;&#xff0c;每生成一个新的任务&#xff0c;就用条件变量唤醒一个线程&#xff0c;当这个唤醒线程执行完任务时&#xff0c;回到条件等待状态。 当…

ThreeJS打造自己的人物

hello&#xff0c;大家好&#xff0c;我是better&#xff0c;今天为大家分享如何使用Three打造属于自己的3D人物模型。 人物建模 当下有很多人物建模的网站&#xff0c;这里给大家分享的 Ready Player Me - Create a Full-Body 3D Avatar From a Photo 前往这个网址&#xff…

C#List转IList方法

最近工作中使用到了C#的List和IList。 这里参考百度上的资料&#xff0c;总结一下。 IList使用命名空间&#xff1a; using System.Collections; List<T>类:表示可通过索引访问的对象的强类型列表&#xff0c;提供用于对列表进行搜索、排序和操作的方法。 IList<T&…

​​Layui之用户管理实例(对数据的增删改查)

目录 ​编辑一、R工具介绍&#xff08;&#xff09; ​编辑二、数据表的增删改查 ​编辑2.1我们先得从查询数据库的语句入手 2.2优化dao类 2.4UserAction类 2.5前台的页面实现增删改查操作 2.6 userManage页面JS 2.7user新增、修改iframe层js 前言 上一篇我分享了…

试玩python的web框架 flask、fastapi、tornado、django

文章目录 一、Flask入门案例 [官网](https://flask.net.cn/quickstart.html) [其它参考](https://zhuanlan.zhihu.com/p/104273184?utm_id0)二、FastAPI入门案例 [官网](https://fastapi.tiangolo.com/zh/) [w3cschool教程](https://www.w3cschool.cn/fastapi/fastapi-feature…

无涯教程-Javascript - 运算符

让无涯教程用一个简单的表达式 4 59 。这里的4和5称为操作数&#xff0c;" "称为运算符&#xff0c;JavaScript支持以下类型的运算符。 算术运算符比较运算符逻辑运算符赋值运算符三元)运算符 算术运算符 JavaScript支持以下算术运算符&#xff0c;假设变量A10&a…

[RocketMQ] Broker CommitLogDispatcher 异步构建ConsumeQueue和IndexFile源码解析 (十四)

CommitLogDispatcherBuildConsumeQueue: 异步构建ConsumerQueue。CommitLogDispatcherBuildIndex: 异步构建IndexFile。 文章目录 1.CommitLogDispatcherBuildConsumeQueue构建ConsumeQueue1.1 putMessagePositionInfo写入消息位置信息1.2 findConsumeQueue查找ConsumeQueue1.2…

go初识iris框架(二) - get,post请求和数据格式

继初步了解iris后 文章目录 获取url路径获取数据get请求post请求获取JSON数据格式JSON返回值获取XML数据格式XML返回值 获取url路径 package mainimport "github.com/kataras/iris/v12"func main(){app : iris.New()app.Get("/hello",func(ctx iris.Conte…

部分安卓端ncnn模型推理输出数据存在大量-nan和nan的问题

原文issue链接&#xff1a;部分安卓端ncnn模型推理输出数据存在大量-nan的问题 Issue #3607 Tencent/ncnn (github.com) 问题描述 onnx、ncnn模型在pc端推理输出结果正确且基本一致&#xff0c;在部分安卓设备上使用同一模型和输入的推理输出数据正常&#xff0c;另一部分安…

Redis报错-CROSSSLOT keys in request don‘t hash in the same slot

背景 问题涉及&#xff1a;spring security、spring session、redis 问题描述 springbootspringsecurityspringsessionantd 登录功能的时候&#xff0c;在源码中使用到了redis的rename命令&#xff08;如下图所示&#xff09; 在这里就会报错 CROSSSLOT keys in request d…

基于小波哈尔法(WHM)的一维非线性IVP测试问题的求解(Matlab代码实现)

&#x1f4a5;1 概述 小波哈尔法&#xff08;WHM&#xff09;是一种求解一维非线性初值问题&#xff08;IVP&#xff09;的数值方法。它基于小波分析的思想&#xff0c;通过将原始问题转化为小波空间中的线性问题&#xff0c;然后进行求解。以下是一维非线性IVP测试问题的求解…

MacOS 便笺Stickies数据恢复

在MacOS上&#xff0c;如果便笺数据丢了&#xff1a; 1、可以去时间机器备份的以下目录寻找&#xff0c;之前所有的便笺&#xff0c;都以rtfd文件的形式存在这下面。 最新备份/用户/Frank(这里是你的用户名)/Library/Containers/com.apple.Stickies/Data/Library/Stickies 2…

守护数智未来,开源网安受邀参加2023OWASP北京论坛

2023年7月14日&#xff0c;OWASP中国与网安加社区联合举办的“2023OWASP中国北京安全技术论坛”在北京圆满召开&#xff0c;开源网安受邀参加本次论坛并分享“软件供应链安全治理实践”。 本次“2023OWASP中国北京安全技术论坛”是OWASP中国北京地区年度重要活动之一&#xff…

【Hive实战】Hive的事务表

Hive Transactions 在升级到Hive 3之前&#xff0c;需要把在事务表上Major Compaction。主要是为了合并掉增量文件。更准确地说&#xff0c;自上次Major Compaction以来在其上执行过任何更新/删除/合并语句的任何分区都必须进行另一次Major Compaction。在 Hive 升级到 Hive 3 …

Vue+axios 使用CancelToken多次发送请求取消前面所有正在pendding的请求

需求&#xff1a; 项目中 折线图数据是循环调用的&#xff0c;此时勾选一个设备&#xff0c; 会出现多条线。 原因 折线图数据一进来接口循环在调用&#xff0c;勾选设备时&#xff0c;循环调用的接口有的处于pedding状态 &#xff0c;有的还在加载中&#xff0c;这就导致勾…

【PDFBox】PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档

这篇文章&#xff0c;主要介绍PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档。 目录 一、PDFBox操作文本 1.1、读取所有页面文本内容 1.2、读取指定页面文本内容 1.3、写入文本内容 1.4、替换文本内容 &#xff08;1&#xf…

如何在 Endless OS 上安装 ONLYOFFICE 桌面编辑器

ONLYOFFICE 桌面编辑器是一款基于依据 AGPL v.3 许可进行分发的开源办公套件。使用这款应用&#xff0c;您无需保持网络连接状态即可处理存储在计算机上的文档。本指南会向您介绍&#xff0c;如何在 Endless OS 上安装 ONLYOFFICE 桌面编辑器。 ONLYOFFICE 桌面版是什么 ONLYO…

Spring Boot进阶(55):SpringBoot之集成MongoDB及实战使用 | 超级详细,建议收藏

1. 前言&#x1f525; 前几期我们有介绍Mysql、Redis等数据库介绍及实战演示&#xff0c;对基本的数据存放有很好的共性&#xff0c;但是如果说遇到大面积的xml、Json、bson等格式文档数据存放&#xff0c;以上数据库并非是最优选择&#xff0c;最优选择是Mongodb数据库。 那么…

如何将jar 包下载到自定义maven仓库

下载命令 mvn install:install-file -Dfileartifactid-version.jar -DgroupIdgroupid -DartifactIdartifactid -Dversionversion -Dpackagingjar -DlocalRepositoryPath. -DcreateChecksumtrue参数解释 在上述命令中&#xff0c;需要替换以下参数&#xff1a; artifactid-vers…