【Docker 基础教程】Docker命令运行原理及一些简单的操作命令

简介: 【Docker 基础教程】Docker命令运行原理及一些简单的操作命令

✈前言


前面介绍到了Docker的安装与基本配置,本篇就着重说一下Docker的基本操作指令,基本操作包括Docker服务的启动与关闭,容器的启动与关闭以及检测容器的状态、容器内数据的持久化。明白了这些基础操作才可以进行下一步的复杂操作。层层递进。本篇笔记跟随的是b站周阳老师,传送门放在了下方,感兴趣或有疑问的小伙伴可以留言,或者直接传送过去瞧一瞧。


✈指令运行原理

Docker文件目录

/var/lib/docker/
├── containers
├── image
│   └── overlay2
│       ├── distribution
│       ├── imagedb
│       │   ├── content
│       │   │   └── sha256
│       │   └── metadata
│       │       └── sha256
│       ├── layerdb
│       └── repositories.json
├── network
│   └── files
│       └── local-kv.db
├── overlay2
│   └── l
├── plugins
│   ├── storage
│   │   └── blobs
│   │       └── tmp
│   └── tmp
├── swarm
├── tmp
├── trust
└── volumes
    └── metadata.db


运行原理


ed8892393b024c409fe443f52722e2c7.png


✈启动、关闭Docker


✒启动关闭


启动docker:


systemctl start docker



停止docker:


systemctl stop docker
• 1


重启docker:


systemctl restart docker



如果没有启动docker的话使用docker命令得到的结果将是

2bb071052a00420aa9e99fd818c75fa5.png


启动成功之后使用docker命令的话得到的将是

6baab82b39414c15ab60a7fa72195d3b.png


✒查看docker状态


查看docker状态:


systemctl status docker


开机启动:


systemctl enable docker


查看docker概要信息:


docker info
• 1


✒获取帮助


查看docker总体帮助文档:


docker -help


查看docker命令帮助文档:


docker 具体命令-help
• 1


✈镜像命令


✒列举本地主机的镜像


docker images


后跟参数说明:


-q 只显示镜像ID


-a 列出本地所有镜像(含历史映像层)


4a61e30115014172bc0a24a6e89d4050.png


REPOSITORY:表示镜像的仓库源 TAG:镜像的标签版本号 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小


同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。


如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像


✒寻找某个镜像


docker search 镜像名字

目标网址是https://hub.docker.com

参数说明:

limit:只列出N个镜像(默认25个)


edf9c7d81b1a453689bce89a51a7c4df.png

53611cfe2be143c49265aefbac20530e.png

NAME 镜像名称

DESCRIPTION 镜像说明

STARS 点赞数量

OFFICIAL 是否是官方的

AUTOMATED 是否是自动构建的


✒下载镜像


docker pull 镜像名[版本号]

如果名字不带版本号的话,默认是最新版本(latest)。如果带上版本号才会去寻找对应的版本


2320c13078b24e7c8a10f2e521a92f6f.png

259d58b7788d40408f6b7e83baeea94c.png


✒查看镜像/容器/数据卷所占的空间


 docker system df

2b9a2f2b5d1547d587f982869a8b94f3.png


✒删除镜像


docker rmi 镜像名或ID

删除单个镜像 docker rmi -f 镜像ID

删除多个镜像 docker rmi -f 镜像名1:版本号 镜像名2:版本号

删除全部镜像 docker rmi -f $(docker images -qa)

871460ca027449bd8cf171bd21cee006.png


✒谈谈docker 虚悬镜像是什么?


仓库名、标签名、都是<none>的镜像,俗称虚悬镜像dangling image

ca97821eeb6348b9bf7feec8b66a2595.png


✈容器命令


有了镜像才可以创建容器,镜像通过pull进行拉取


✒新建启动容器


❄常规方式启动容器


命令原型:docker run [options] image [command][arg…]



OPTIONS说明(常用):有些是一个减号,有些是两个减号


–name=“容器新名字” 为容器指定一个名称;


-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);


-i:以交互模式运行容器,通常与 -t 同时使用;


-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;


也即启动交互式容器(前台有伪终端,等待交互);


-P: 随机端口映射,大写P


-p: 指定端口映射,小写p


429f4fdc18844611b458a9aee23e6e95.png


❄交互式启动容器


命令原型:docker run -it 容器名 /bin/bash


使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。


docker run -it centos /bin/bash


参数说明:


-i: 交互式操作。


-t: 终端。


centos : centos 镜像。


/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。要退出终端,直接输入 exit:


✒查看容器运行状态


docker ps [options]


a730d66c6ded49bb9eb5443449abb74a.png


OPTIONS说明(常用):

-a :列出当前所有正在运行的容器+历史上运行过的

-l :显示最近创建的容器。

-n:显示最近n个创建的容器。

-q :静默模式,只显示容器编号。

9ecf1cb878e940cf8220c0d06f4fcc37.png


✒退出容器


交互式容器停止:


容器不停止:ctrl+p+q(退出容器容器不停止)


容器停止:exit(退出容器,容器停止)


守护容器停止:docker stop 容器ID或者容器名


强行停止容器:docker kill 容器ID或者容器名


重启容器:docker restart 容器ID或者容器名


✒删除已停止的容器


命令原型 :docker rm 容器ID

一次性删除多个容器实例:

docker rm -f $(docker ps -a -q)

docker ps -a -q | xargs docker rm


✒启动守护容器


一般情况下我们是希望docker 的服务是在后台进行的,我们可以通过-d指定容器的后台运行模式

后台启动方式:docker run -d 容器名

前台启动方式:docker run -it 容器名


✒进入正运行容器,并进行命令交互


第一种:


命令原型:docker exec -it 容器ID bashShell


这个baseShell 指的是对应容器内的目录,比如centos的shell命令在/bin/bash


redis 的命令在redis-cli内


第二种:


命令原型:


docker attach 容器ID



二者区别:


attach直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。

exec是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。


✒给镜像打标签


按照公式: docker tag 镜像:Tag Host:Port/Repository:Tag


自己host主机IP地址,填写自己的,不要粘贴错误,O(∩_∩)O


使用命令 docker tag 将zzyyubuntu:1.2 这个镜像修改为192.168.111.162:5000/zzyyubuntu:1.2


docker tag zzyyubuntu:1.2 192.168.111.162:5000/zzyyubuntu:1.2

6aaeb08183f04bae920c1149fa2d7859.png


✒查看容器日志


docker logs 容器ID


ca8adc97caf84a3b9f3d858437203529.png


✒查看容器内运行的进程


docker top 容器ID


b4aa075fd3d4416f81a16e0fe9d3b693.png


✒查看容器内部细节


docker inspect 容器ID


✒容器向主机拷贝


命令原型:docker cp 容器ID:容器内路径 目的路径


048ccbbc50214bf3949c4f0cb94fdac1.png


✒导入或导出容器


export导出容器的内容留作为一-个tar归档文件[对应import命令]


import从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]


docker export容器ID >文件名.tar


ad4a738eb103410089a9bc905c48bfc2.png


cat文件名.tar| docker import -镜像用户/镜像名:镜像版本号


561d0a538d33406d8af07baae9d2ed7c.png


✈小总结

4bb9ea1270f94252824ffcaa1f310618.png


1668000846459.png

1668000867075.png

1668000882091.png




相关文章
|
2月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
1013 6
|
2月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
375 124
|
2月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
1928 9
|
5月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
1588 75
|
5月前
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
3363 59
|
4月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
305 16
|
运维 关系型数据库 MySQL
宝塔面板 Docker 镜像加速教程
本文介绍了如何为宝塔面板中的 Docker 配置轩辕镜像加速。内容包括:安装 Docker 管理器、获取镜像加速地址、配置加速 URL 以及验证设置等步骤。通过使用免费版或专业版加速地址(如 docker.xuanyuan.me 或 xuanyuan.cloud),可显著提升镜像拉取速度。同时,还提供了日常使用方法和注意事项,帮助用户顺利完成配置并保障 Docker 服务稳定运行。
274 0
|
6月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p &lt;宿主机端口&gt;:&lt;容器端口&gt;`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
|
5月前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
473 11
|
6月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
408 18