docker相关知识

本文详细介绍Docker的基础概念,包括其核心组成元素:镜像、容器和仓库。文章还提供了丰富的命令示例,涵盖基本操作及高级技巧,帮助读者快速掌握Docker的实际应用场景。

学习内容:

一、docker概述
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口
在这里插入图片描述
在这里插入图片描述
二、Docker三大核心
docker有3大核心:镜像、容器、仓库
在这里插入图片描述

鲸鱼是操作系统。
要交付的应用程序是各种货物,要将各种形状和尺寸不同的货物放到大鲸鱼上,得考虑每件货物怎么安放(应用程序配套的环境),还得考虑货物和货物之间能否重叠起来(应用程序依赖的环境是否会冲突)。
现在使用了集装箱(容器)把每件货物都放到集装箱里,这样大鲸鱼可以用同样地方式安放、堆叠集装了,省事省力。
即:打包放到鲸鱼上,鲸鱼放到服务器上。也就是“build——ship——run”,这样在自己的电脑上怎么运行,在服务器上也会怎么运行。
用docker运行一个程序的过程:
去仓库把镜像拉到本地,然后用一条命令把镜像运行起来,变成容器。

三、docker常用命令总结
docker pull ${CONTAINER NAME} #拉取镜像
docker images #查看本地所有镜像
docker ps #查看所有正在运行的容器,加-q返回id
docker ps -a #查看所有容器,加-q返回id
docker rmi ${IMAGE NAME/ID} #删除镜像
docker rm ${CONTAINER NAME/ID} #删除容器
docker save ${IMAGE NAME} > ${FILE NAME}.tar #将镜像保存成文件
docker load < ${FILE NAME}.tar #从文件加载镜像
docker start ${CONTAINER NAME/ID} #运行一个以前运行过的容器
docker stop ${CONTAINER NAME/ID} #停止一个正在运行的容器
docker logs ${CONTAINER NAME/ID} #显示运行容器的日志
docker run… #运行一个容器
–name ${container name} #设置容器名称
-p

     h
    
    
     o
    
    
     s
    
    
     t
    
    
     p
    
    
     o
    
    
     r
    
    
     t
    
   
   
    :
   
  
  
   {host port}:
  
 
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.88888em; vertical-align: -0.19444em;"></span><span class="mord"><span class="mord mathdefault">h</span><span class="mord mathdefault">o</span><span class="mord mathdefault">s</span><span class="mord mathdefault">t</span><span class="mord mathdefault">p</span><span class="mord mathdefault">o</span><span class="mord mathdefault" style="margin-right: 0.02778em;">r</span><span class="mord mathdefault">t</span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">:</span></span></span></span></span>{container port} #映射主机和容器内的端口<br> -e <span class="katex--inline"><span class="katex"><span class="katex-mathml">

 
  
   
    
     e
    
    
     n
    
    
     v
    
    
     n
    
    
     a
    
    
     m
    
    
     e
    
   
   
    =
   
  
  
   {env name}=
  
 
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.43056em; vertical-align: 0em;"></span><span class="mord"><span class="mord mathdefault">e</span><span class="mord mathdefault">n</span><span class="mord mathdefault" style="margin-right: 0.03588em;">v</span><span class="mord mathdefault">n</span><span class="mord mathdefault">a</span><span class="mord mathdefault">m</span><span class="mord mathdefault">e</span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">=</span></span></span></span></span>{env value} #添加环境变量<br> -d #后台运行<br> -v <span class="katex--inline"><span class="katex"><span class="katex-mathml">

 
  
   
    
     h
    
    
     o
    
    
     s
    
    
     t
    
    
     f
    
    
     o
    
    
     l
    
    
     d
    
    
     e
    
    
     r
    
    
     p
    
    
     a
    
    
     t
    
    
     h
    
   
   
    :
   
  
  
   {host folder path}:
  
 
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 0.88888em; vertical-align: -0.19444em;"></span><span class="mord"><span class="mord mathdefault">h</span><span class="mord mathdefault">o</span><span class="mord mathdefault">s</span><span class="mord mathdefault">t</span><span class="mord mathdefault" style="margin-right: 0.10764em;">f</span><span class="mord mathdefault">o</span><span class="mord mathdefault" style="margin-right: 0.01968em;">l</span><span class="mord mathdefault">d</span><span class="mord mathdefault">e</span><span class="mord mathdefault" style="margin-right: 0.02778em;">r</span><span class="mord mathdefault">p</span><span class="mord mathdefault">a</span><span class="mord mathdefault">t</span><span class="mord mathdefault">h</span></span><span class="mspace" style="margin-right: 0.277778em;"></span><span class="mrel">:</span></span></span></span></span>{container folder path} #将主机目录挂在到容器内<br> 三、docker高级命令总结<br> Advance use<br> docker ps -f “status=exited” #显示所有退出的容器<br> docker ps -a -q #显示所有容器id<br> docker ps -f “status=exited” -q #显示所有退出容器的id<br> docker restart $(docker ps -q) #重启所有正在运行的容器<br> docker stop $(docker ps -a -q) #停止所有容器<br> docker rm $(docker ps -a -q) #删除所有容器<br> docker rm $(docker ps -f “status=exited” -q) #删除所有退出的容器<br> docker rm $(docker stop $(docker ps -a -q)) #停止并删除所有容器<br> docker start $(docker ps -a -q) #启动所有容器<br> docker rmi $(docker images -a -q) #删除所有镜像<br> docker exec -it ${CONTAINER NAME/ID} /bin/bash #进入容器内<br> docker exec -it ${CONTAINER NAME/ID} ping ${CONTAINER NAME/ID} #一个容器ping另外一个容器<br> docker top ${CONTAINER NAME/ID} #显示一个容器的top信息<br> docker stats #显示容器统计信息(正在运行)<br> docker stats -a #显示所有容器的统计信息(包括没有运行的)<br> docker stats -a --no-stream #显示所有容器的统计信息(包括没有运行的) ,只显示一次<br> docker stats --no-stream | sort -k8 -h #统计容器信息并以使用流量作为倒序<br> docker system<br> docker system df #显示硬盘占用<br> docker system events #显示容器的实时事件<br> docker system info #显示系统信息<br> docker system prune #清理文件</p>
            </div><div data-report-view="{&quot;mod&quot;:&quot;1585297308_001&quot;,&quot;dest&quot;:&quot;https://blog.youkuaiyun.com/weixin_53549425/article/details/113351679&quot;,&quot;extend1&quot;:&quot;pc&quot;,&quot;ab&quot;:&quot;new&quot;}"><div></div></div>
            <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-d7a94ec6ab.css" rel="stylesheet">
            <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-80ad9b4f5b.css" rel="stylesheet">
    </div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值