【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




相关文章
|
26天前
|
机器人 网络安全 数据安全/隐私保护
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
63 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
26天前
|
安全 Docker 容器
|
26天前
|
网络安全 数据安全/隐私保护 Docker
|
25天前
|
存储 监控 安全
|
20天前
|
安全 Linux Shell
docker运行centos提示Operation not permitted
通过上述步骤,可以有效排查和解决在Docker中运行CentOS容器时遇到的"Operation not permitted"错误。这些措施涵盖了从权限配置、安全策略到容器运行参数的各个方面,确保在不同环境和使用场景下都能顺利运行容器。如果你需要进一步优化和管理你的Docker环境
32 3
|
25天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
205 3
|
25天前
|
存储 关系型数据库 MySQL
|
1月前
|
网络协议 Docker 容器
docker pull命令拉取镜像失败的解决方案
docker pull命令拉取镜像失败的解决方案
816 1
|
1月前
|
数据可视化 数据挖掘 Docker
Docker Desktop 安装 ClickHouse 超级简单教程
Docker Desktop 安装 ClickHouse 超级简单教程
46 1
|
1月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
234 3