学习内容:
一、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="{"mod":"1585297308_001","dest":"https://blog.youkuaiyun.com/weixin_53549425/article/details/113351679","extend1":"pc","ab":"new"}"><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>
本文详细介绍Docker的基础概念,包括其核心组成元素:镜像、容器和仓库。文章还提供了丰富的命令示例,涵盖基本操作及高级技巧,帮助读者快速掌握Docker的实际应用场景。
569

被折叠的 条评论
为什么被折叠?



