开发者必备丨Docker客户端常用命令分享
学习Docker,首先需要了解Docker基本概念,我们在以前的文章中介绍过docker的基本原理和部署操作系统。
今天讲下嵌入式开发中docker客户端常用的命令,开始进入“动手”阶段(也就是敲Docker命令)。Docker命令较多,这里笔者总结下常用的Docker命令,方便小伙伴们查阅。
客户端常用命令列表
以下为Docker 客户端常用命令列表,可以通过docker COMMAND --help来查看这些命令的具体用法。
attach:依附到一个正在运行的容器中;
build :从一个Dockerfile创建一个镜像;
commit:从一个容器的修改中创建一个新的镜像;
cp:在容器和本地宿主系统之间复制文件中;
create:创建一个新容器,但并不运行它;
diff:检查一个容器内文件系统的修改,包括修改和增加;
events:从服务端获取实时的事件;
exec :在运行的容器内执行命令;
export:导出容器内容为一个tar包;
history:显示一个镜像的历史信息;
images:列出存在的镜像;
import:导入一个文件(典型为tar包)路径或目录来创建一个本地镜像;
info:显示一些相关的系统信息;
inspect:显示一个容器的具体配置信息;
kill:关闭一个运行中的容器 (包括进程和所有相关资源);
load :从一个tar包中加载一个镜像;
login :注册或登录到一个Docker的仓库服务器;
logout :从Docker的仓库服务器登出;
logs:获取容器的log信息;
network:管理 Docker 的网络,包括查看、创建、删除、挂载、卸载等;
node:管理 swarm 集群中的节点,包括查看、更新、删除、提升/取消管理节点等;
pause:暂停一个容器中的所有进程;
port :查找一个 nat 到一个私有网口的公共口;
ps :列出主机上的容器;
pull :从一个Docker的仓库服务器下拉一个镜像或仓库;
push :将一个镜像或者仓库推送到一个 Docker 的注册服务器;
rename:重命名一个容器;
restart:重启一个运行中的容器;
rm :删除给定的若干个容器;
rmi :删除给定的若干个镜像;
run :创建一个新容器,并在其中运行给定命令;
save :保存一个镜像为 tar 包文件;
search:在 Docker index 中搜索一个镜像;
service:管理 Docker 所启动的应用服务,包括创建、更新、删除等;
start :启动一个容器;
stats :输出(一个或多个)容器的资源使用统计信息;
stop :终止一个运行中的容器;
swarm:管理 Docker swarm 集群,包括创建、加入、退出、更新等;
tag:为一个镜像打标签;
top:查看一个容器中的正在运行的进程信息;
unpause:将一个容器内所有的进程从暂停状态中恢复;
update:更新指定的若干容器的配置信息;
version:输出 Docker 的版本信息;
volume:管理 Docker volume,包括查看、创建、删除等;
wait :阻塞直到一个容器终止,然后输出它的退出符。
两张图总结Docker的命令
Container事件状态图
Docker命令分布图
常用操作及命令
常用镜像操作
列出镜像
docker images
删除镜像
docker rmi [-f] <IMAGE ID>或docker image rm [-f] <IMAGE ID>
其中-f代表强制删除,用在多个容器对应一个镜像时
给一个镜像打标签
docker tag
常用容器操作
列出主机上的容器
docker container ls [-a]
以某镜像为基础启动并运行容器
docker run -itd --privileged=true --cap-add=SYS_ADMIN --mount type=bind,src=/data/home,target=/root/workspace -p 30000:22 <IMAGE ID> bin/bash
参数说明:
-i表示交互式,让容器的标准输入保持打开
-t表示让docker分配一个伪终端并绑定到容器的标准输入上
-d表示容器启动会进入后台运行
--privileged=true表示允许容器中运行一些特权命令
--cap-add=SYS_ADMIN表示提供给容器更大的管理权限
-v表示绑定挂载目录
-p表示指定主机端口和容器内部端口映射关系
bin/bash表示因为docker后台必须运行一个进程,否则容器就会退出。
重命名容器
docker rename old_name new_name进入后台的容器(用此方法进入后,执行exit时不会导致容器的停止,还有个命令attach也可以进入后台容器,但是exit会导致容器停止)
docker exec -it container_name bin/bash
终止容器
docker container stop
重新启动终止状态的容器
docker container start
终止一个运行态的容器然后重启
docker container restart
删除终止态容器
docker container rm container_name
删除运行态容器
docker container rm -f container_name
清理所有终止态容器
docker container prune
查看容器的信息
docker inspect container_name
查看容器对应的主机端口:
#docker port container_name或#docker port container_name <PORT_NUMBER>
基于一个新的基础镜像新建容器
1.查找官方仓库中的镜像
docker search ubuntu
可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建、是否自动创建
2.下载镜像到本地
docker pull ubuntu:18.04
3.查看下载的镜像
docker images
4.加载镜像到容器并运行
docker run -itd --privileged=true --cap-add=SYS_ADMIN --mount type=bind,src=/data/home,target=/root/workspace -p 30000:22 <IMAGE ID> bin/bash
5.推送镜像到远程仓库
docker push
容器的保存及打开
容器导出文件再导入文件为本地镜像,会丢失历史和元数据,无法回滚到以前的层,导出的包稍小。
1.先获取容器id
docker container ls
2.导出容器内容为一个tar包
docker export <CONTAINER ID> > /home/export.tar
3.导入一个文件(典型为tar包)路径或目录来创建一个本地镜像,可以重新指定镜像名字。
cat xxx.tar | docker import - new_name:new_tag
或:
从指定URL或某个目录导入容器快照:
docker import http://example.com/exampleimage.tgz example/imagerepo
4.加载镜像到容器,并启动容器
docker run
镜像的保存及打开
镜像导出文件再导入文件为本地镜像,不丢失历史和层,可以层回滚
1.查看镜像id
docker images
2.导出镜像内容为一个tar包
docker save <IMAGE NAME> > /home/save.tar
3.从一个tar包中加载一个镜像,不可以重新指定镜像名字
docker load < /home/save.tar
4.查看导入的镜像id
docker images
以上命令基本覆盖了嵌入式开发中常用的docker命令,想了解更多可以查看:
Docker 官方主页:https://www.docker.com
Docker 官方博客:https://blog.docker.com
Docker 官方文档:https://docs.docker.com
希望大家看到有所收获,指出问题共同进步,在飞凌的技术支持和分享中获得更多的知识。
相关产品 >
-
FETMX6Q-C核心板
i.MX6Q核心板板层出不穷,要如何选择?飞凌解读i.mx6Q芯片强性能为您推荐四核A9架构的i.MX6Q产品精选,包含iMX6Q 核心板、i.MX6Q 核心板、iMX6Q工业级核心板,欢迎采购。 i.MX6Q核心板基于NXP(原Freescale)Cortex-A9架构的i.MX6Q四核处理器设计,核心板小尺寸核心板搭配独特的薄款连接器,让设计随心所欲!
了解详情 -
FETA40i-C核心板
Allwinner A40i是全志开发的一款工业级处理器,A40i作为全国产工业级芯片中的佼佼者,采用更低功耗的4核ARM Cortex-A7架构,工作温度-40-85℃,是一款高性能低功耗超高性能CPU主芯片。飞凌嵌入式深度研究全志A40i芯片参数、原理图、datasheet规格书推出了以FETA40i核心板为主的一系列全国产工业级嵌入式计算机板卡,并提供了用于评估的A40i工控板、 A40i开发板。 了解详情 -
FETT507-C核心板
推荐T507,全志T507核心板采用工业级处理器设计开发,提供T507规格书,T507各类设计资料。FETT507-C核心板集成全志T507四核工业级处理器设计开发,Cortex-A53架构,主频1.5GHz,集成G31 GPU,内存2GB DDR3L,存储8GB eMMC。整板工业级运行温宽,支持绝大部分当前流行的视频及图片格式解码,具有稳定可靠的工业级产品性能、低功耗以及丰富的用户接口等优势,搭载Linux、Android、Ubuntu*操作系统,适用于车载电子、电力、医疗、工业控制、物联网、智能终端等领域 了解详情 -
FETMX8MP-C核心板
iMX8MP核心板基于 NXP i.MX 8M Plus 处理器设计, 采用4核Cortex-A53 和 Cortex-M7架构。支持双千兆网口,iMX8MP性能强劲最高运行速率可达2.3TOPS,并且i.MX8MP功耗更低≤2W 。iMX 8M Plus系列专注于机器学习和视觉、高级多媒体以及具有高可靠性的工业自动化。它旨在满足智慧家庭、楼宇、城市和工业4.0应用的需求。飞凌iMX8MP核心板提供用户手册,iMX8MP原理图,引脚定义等。
了解详情