Docker命令,网络工程师专属教程。

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Docker命令,网络工程师专属教程。

📢身为新时代的网络工程师,传统的路由交换已经满足不了日常。SDN、网络自动化、虚拟化、容器化的出现已经慢慢的代替了传统的数据通信。NetDevOps更是要求现代的网络工程师让编程和自动化成为日常的口袋技能。这个趋势下,我们不得不让自己有闪光点,不然迟早会被淘汰!🤪

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

📢未来很长,值得我们全力奔赴更美好美好的生活✨

📢本文有Linux基础看的话更容易些,没基础也无大碍。✊

📢往期精彩

👉Docker简介

👉Docker架构

1️⃣概述

命令文档:https://docs.docker.com/engine/reference/run/
• 1

整体图解:

image.png

2️⃣Docker命令(镜像)

一、docker search:查找dockerhub上镜像信息(不推荐)

命令:

docker search [OPTIONS] TERM

举例:

1.docker search --limit 3 centos:限制仅三个输出三个centos镜像。 image.png

2.docker search --filter stars =100 xx --filter is-automated = true centos:限制centos镜像的星的数量和是否是自动构建(dockerhub可以直接把github上的dockerfile文件构建为镜像)。

image.png

3.docker search --filter is-official=true centos:查看centos的官方镜像。

image.png

4.docker search --limit --no-trunc centos:不截断显示信息。

image.png

5.docker search --format "xxxx" -- limit 3 centos:格式化输出字符串。

image.png

注意:

如果使用第三方镜像,例如prin/centos(非官方镜像前面有自己的用户名),为了安全考虑,需要确保能够看到dockerfile信息,知道每一层的信息。推荐直接在dockerhub的网页上查看详细的信息。

image.pngimage.png

二、docker pull:从私有或者公有仓库下载镜像

命令:

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

举例:

1.docker pull centos:从dockerhub上下载centos最新版到本地,默认是latest。

image.png

2.docker pull centos:7:从dockerhub上下载具体的版本的centos到本地。

注意:

每一个镜像后面带有一个tag,不加则表示是使用最新版。

三、docker push:将本地的镜像上传到私有或公有仓库

命令:

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

举例:

将数据push到dockerhub:

1.docker login,登陆dockerhub。

2.docker push prin/centos,也就是账号名/镜像名

四、docker images:查看本地的镜像

命令:

docker images [OPTIONS] [REPOSITORY[:TAG]]

1.docker images:列出所有的images。

2.docker images centos:查看centos的images。

3.docker images -aq:查看所有images的ID,仅显示部分。

4.docker images --digests:查看每一个images的MD5值。

注意:

对镜像进行操作时,可以使用镜像的名称,或者使用ID。

五、docker rmi:删除对应的镜像

命令:

docker rmi [OPTIONS] IMAGE [IMAGE...]

举例:

1.docker rmi mysql:删除特定名称的镜像[默认tag是latest]。

2.docker rmi xxxx(容器ID或名称) yyyy(另一个容器ID或名称):删除特定ID的镜像[可以同时指定多个ID]。

3.docker rmi -f $(docker images -aq):删除全部镜像。

3️⃣Docker命令(容器)

一、docker run:运行镜像,产生容器

命令:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

举例:

1.docker run centos:用centos镜像产生容器,系统随机产生名称。

2.docker run --name xxx centos:xxx为使用centos镜像产生容器时的手工命名。

3.docker run --name xxx -d centos cmd:cmd为容器产生时,其pts0号口(类似于console口)下执行的命令主进程。如果这个进程执行完成,则容器进入exited状态。-d表示容器的主进程在宿主机的后台而非前台运行,如果在宿主机的后台运行,通常需要加-d。

image.png

4.docker run --name xxx -it centos /bin/bash:进入pts0号口的交互界面。如果进入后再输入exit,退出容器,则容器由于没有一个主进程运行,而变为exited状态;因此我们可以使用ctrl+p ctrl+q,以挂起的状态退出,这样的退出容器会保持运行状态。

image.png

二、docker rm:删除容器

命令:

docker rm [OPTIONS] CONTAINER [CONTAINER...]

举例:

1.docker rm xxx(容器名称或者容器ID):运行的容器不能执行rm删除,但可以使用docker rm -f xxx强行删除。

2.docker rm -f $(docker ps -aq):删除所有的容器。

三、docker: start&stop&restart&kill:开始,停止,重启容器

命令:

1.start:docker start [OPTIONS] CONTAINER [CONTAINER...]

2.stop:docker stop [OPTIONS] CONTAINER [CONTAINER...]

3.restart:docker restart [OPTIONS] CONTAINER [CONTAINER...]

4.kill:docker kill [OPTIONS] CONTAINER [CONTAINER...]

举例:

1.docker stop xxx(容器名称或者ID):停止容器。

2.docker start xxx(容器名或者ID):启动已经停止的容器。

3.docker restart xxx(容器名或者ID):重启一个正在运行的容器。

4.docker kill xxx(容器名称或者ID):强行停止容器。

四、docker cp:拷贝文件

命令:

1.将容器里的内容拷贝宿主机:docker cp [OPTIONS]CONTAINER:SRC_PATH DEST_PATH

2.将宿主机的内容拷贝到容器:docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH。

举例:

1.docker cp xxx prin_test:/xxx:将本地的xxx文件拷入prin_test容器的根目录,命名为xxx。

2.docker cp prin_test:/xxx xxx:将prin_test容器的根目录下文件xxx,拷入宿主机命名为xxx。

五、docker pause & unpause:容器暂停/取消暂停

命令:

1.pause:docker pause CONTAINER [CONTAINER...]

2.unpause:docker unpause CONTAINER [CONTAINER...]

举例:

1.docker pause xxx(容器名称或ID):暂停某个容器的主进程运行。

2.docker unpasue xxx(容器名称或ID):将某个暂停状态下的容器解除暂停状态。

六、docker attach & exec:进入运行的容器/在运行的容器中执行命令

命令:

1.attach:docker attach [OPTIONS] CONTAINER

2.exec:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

image.png

举例:

1.docker attach xxx(容器名):进入一个运行的容器的pts0号口,一般情况下从pts0接口登陆容器,都无法进行操作,因为主进程一直在运行。

2.docker exec -it xxx(容器名) /bin/bash:进入一个运行的容器的pts接口(非0号接口,类似于VTY接口),在其他没有主进程运行,可以自己操作;并且退出以后容器不会停止。进入容器后,使用命令tty可以看到具体的线路。

3.docker exec xxx(容器名) ifconfig:直接在对应容器中执行相应的命令,本例中为ifconfig。

七、docker inspect&logs:查看容器的详细信息/查看容器目前主进程的日志信息

命令:

1.inspect:docker inspect [OPTIONS] NAME|ID [NAME|ID...]
2.logs:docker logs [OPTIONS] CONTAINER

举例:

1.docker inspect xxx(容器名或者ID):

要点1:在inspect中查看到的ID值才是完整的ID,docker ps中显示的是部分ID信息。

image.png

要点2:数据库挂载的位置,后续笔记中会提到:

image.png

要点3:网络相关的信息,在NetworkSettings中,主要包含了开放端口、网关(gateway)、IP地址、掩码、MAC地址、此容器连接的网桥等:

image.pngimage.png

2.docker inspect qytcentos-1| jq-r '.[0].NetworkSettings.lPAddress':使用jq(宿主机上要安装)提取inspect信息中的的具体信息。由于inspect信息是一个大列表,内部是字典,本条命令的含义是,提起列表中0号元素(字典),的NetworkSettings键对应值中,IPAddress键对应的值。

3.docker inspect --format=’{{.NetworkSettings.要获取的Key}}’ 容器名称(容器ID)例如:

查看完整网络信息:docker inspect --format="{{json .NetworkSettings}}" container(容器名称) | jq

查看网络端口映射:docker inspect --format="{{json .NetworkSettings.Ports}}" container | jq

查看容器的网络ip、网关等信息:docker inspect --format="{{json .NetworkSettings.Networks}}" container | jq

3.docker logs xxx(容器名称):查看容器pts0线路进程当前已有日志情况。

4.docker logs -tf xxx(容器名称):查看容器pts0线路进程当前的日志情况,并且实时更新日志信息。

4️⃣Docker命令(其他):

一、docker diff:列出当容器窗机后,容器内文件系统,修改的文件和目录

命令:

docker diff CONTAINER

举例:

docker diff xxx:查看容器名xxx创建后,对文件系统做的操作。

image.png

其中A、D、C参数的意义:

image.png

二、docker commit:用变更后的容器创建行的镜像

命令:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

举例:

docker commit -m 'install net-tools' -a 'prin' xxx(容器名):产生类似于虚拟机的快照(镜像)。

image.png

命令中各个参数的含义:

image.png

三、docker tag:修改镜像标签

命令:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

举例:

docker tag prin/centos_old prin/centos_new:其实相当于复制源镜像一次,并且修改名称。

四、docker export&import/save&load:将容器或者镜像导出为文件/文件倒回到镜像

命令:

export:docker export [OPTIONS] CONTAINER
import:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
save:docker save [OPTIONS] IMAGE [IMAGE...]
load:docker load [OPTIONS]

举例:

导出:

1.docker expert -o centos_new.tar centos_new:将centos_new容器导出为centos_new.tar文件。

2.docker save -o centos_new.tar centos:将centos镜像导出为centos_new.tar文件。

导入:

1.docker import centos_new.tar prin/centos_test:将centos_new.tar导入到镜像prin/centos_test。

2.dockerload -i centos_new.tar :将centos_new.tar导入到镜像centos,这里不需要跟镜像名,直接还原为原来的镜像。

注意点:

save&load:docker save images_name:将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。

export&import:docker export container_id:将一个容器导出为文件,再使用docker import命令将容器导入成为一个新的镜像,但是相比docker save命令容器文件会丢失所有源数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。

五、docker port:暴露/查看容器具体的端口

命令:

docker port CONTAINER [PRIVATE_PORT[/PROTO]]

举例:

1.docker run -it --name qytcentos-1-p 8000:80 -p 1022:22 collinsctk/centos_net_tools_vim /bin/bash:创建容器时将内部的80端口映射在宿主机的8000端口上,22端口映射到1022端口上。

2.docker port xxx(容器名称):查看特定容器暴露的所有端口。

image.png

3.docker port xxx(容器名称) 5432/tcp:查看主机特定端口与指定容器特定端口的映射关系。

image.png

六、docker top:查看容器内进程

命令:

docker top CONTAINER [ps OPTIONS]

举例:

docker top xxx:在不进入容器的情况下,查看其中的进程信息。

image.png

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
kde
|
2月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
900 4
|
3月前
|
安全 网络协议 算法
Nmap网络扫描工具详细使用教程
Nmap 是一款强大的网络发现与安全审计工具,具备主机发现、端口扫描、服务识别、操作系统检测及脚本扩展等功能。它支持多种扫描技术,如 SYN 扫描、ARP 扫描和全端口扫描,并可通过内置脚本(NSE)进行漏洞检测与服务深度枚举。Nmap 还提供防火墙规避与流量伪装能力,适用于网络管理、渗透测试和安全研究。
503 1
|
2月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
361 124
|
5月前
|
JSON 监控 API
在线网络PING接口检测服务器连通状态免费API教程
接口盒子提供免费PING检测API,可测试域名或IP的连通性与响应速度,支持指定地域节点,适用于服务器运维和网络监控。
kde
|
2月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
kde
1815 9
|
3月前
|
Shell 开发工具 git
使用代理访问网络各项命令总结
工作中常需设置代理,容易导致环境混乱。本文总结了 SourceTree 无法拉取代码的问题,排查了环境变量、Git 全局配置及系统代理设置,最终通过清除 Git 代理配置解决。内容涵盖排查步骤、命令整理及脚本处理,帮助快速定位并解决代理相关网络问题。
199 3
|
5月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
1522 75
kde
|
5月前
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
kde
3236 59
|
4月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
298 16

热门文章

最新文章