不能错过的docker容器基础命令,快来一键学习吧!

在这里插入图片描述
个人简介

🏡 博客首页:💐欢迎前往 彩虹龙 首页
⛳️ 欢迎关注 ❤️ 点赞 🎒 收藏 ✏️ 留言
🚧 技术专栏:💐欢迎前往Docker容器专栏
🐱‍🐉 本技术专栏记录docker容器化技术的基础知识与学习记录,如有描述有误的地方还望大佬赐教。

官方地址

帮助文档官方地址:https://docs.docker.com/engine/reference/commandline/docker/
镜像仓库地址:https://hub.docker.com/
注意:访问慢?转圈圈?不动弹?是不是网址错误?NO!这都不是,访问慢这是正常情况,多刷刷就🆗啦!

显示版本信息

docker version            // 显示Docker的版本信息

执行“docker version”分别会输出“Client”客户端和“Server”服务端相关信息,如果“server”端没启动就不会显示相关“server”端信息。
在这里插入图片描述
containerd:Docker为了兼容OCI标准,将容器Runtime及其管理功能从Docker守护进程中剥离出来,用于不启动Docker也能直接通过Containerd来管理容器。
runc:Docker按照OCF开放容器格式标准制定的一个轻量级工具,可以使用RunC不通过Docker引擎即可实现容器的启动、停止和资源隔离等功能。

显示Docker系统信息

docker info               // 显示Docker的系统信息,包括镜像和容器的数量

执行“docker info”分别会输出“Client”客户端和“Server”服务端相关信息,如果“server”端没启动会在“server”端显示位置显示报错。
Client端相关输出说明:

  • Debug Mode:是否开启Debug模式。

Server端相关输出说明:

  • Containers:容器个数。
  • Running:正在运行的容器个数。
  • Paused:暂停的容器个数。
  • Stopped:停止的容器个数。
  • Images:镜像个数。
  • Storage Driver:储存驱动,一般为overlay2性能好速度快。
  • Backing Filesystem:服务器文件系统。
  • Logging Driver:日志驱动,json-file表示日志会存放在本地。
  • Cgroup Driver:限制和隔离的驱动,生产环境建议是systemd(重点)
  • Swarm:Docker官方的容器编排工具,inactive不开启、active开启。
  • Docker Root Dir:数据存放位置,docker根目录,生产环境建议独立的磁盘。
  • Live Restore Enabled:Docker热更新,生产环境建议设置为true。因为如果是false则表示重启docker服务的时候docker容器也会被进行重启,如果设置为true则重启docker时容器不会被重启。

镜像命令

查看本地镜像(images)

docker images				 // 显示本地所有镜像

输出结果:
在这里插入图片描述
输出说明:REPOSITORY(镜像的仓库源)、TAG(镜像的标签)、IMAGE ID(镜像ID)、CREATED(镜像创建时间)、SIZE(镜像大小)。
注意:镜像的大小并不一定是该镜像的真实大小,因为存在联合文件系统层级关系。

docker images -qa			 // 显示本地所有镜像ID

输出结果:
在这里插入图片描述

搜索镜像(search)

docker search nginx					// 搜索NGINX镜像

注意:推荐使用官方的镜像,不要使用第三方镜像,可能会存在病毒。
在这里插入图片描述
搜索指定大小镜像:可使用“–filter=stars=3000”这里3000是镜像的星级大小。

docker search nginx --filter=stars=3000				// 搜索指定星标大小(方式一)
docker search nginx -f stars=3000					// 搜索指定星标大小(方式二)

在这里插入图片描述

下载镜像(pull)

docker pull nginx						// 下载NGINX镜像

注意:默认不指定版本号则下载最新版本的nginx镜像。
在这里插入图片描述
输出说明:Using default tag(镜像版本,latest表示最新版)、latest(正在下载)、Digest(防伪标签)、Status(当前下载状态)。

docker pull nginx:1.22.0						// 下载指定镜像版本

注意:指定版本镜像下载,需要先去官网https://hub.docker.com确定是否有该版本镜像,如果没有则会报错。另外下载镜像的时候,如果已经下载过基础镜像,那么它会直接跳过基础镜像的下载,从而节省系统内存资源降低消耗。

删除镜像(rmi)

若本地有多个同名不同版本的镜像可使用分号“:”来进行版本的指定删除,否则将会删除本地版本为latest的镜像,也可直接针对镜像ID来进行删除。

docker rmi nginx:1.22.0							// 通过镜像源和tag版本进行删除
docker rim b3c5c59017fb							// 通过镜像ID进行删除
docker rmi 镜像ID  镜像ID						// 同时删除多个镜像

删除本地全部镜像:

docker rmi $(docker images -aq)
docker rmi $(docker images -aq)	-f		// 强制删除

注意:在进行全部镜像删除的时候,如果镜像有被启动过,在容器中未被删除则无法进行镜像的删除。如果非要将全部镜像删除,可采用“-f”参数来进行满足,但删除后容器仍然存在。

远程仓库登录(login)

docker中login用于登录到一个docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库“Docker Hub”仓库,这里可以是“阿里云、网易云、私有镜像仓库地址。下面使用阿里云镜像仓库做演示。
阿里云镜像仓库:登录链接: 阿里云→控制台→产品与服务→容器服务→容器镜像服务。
在这里插入图片描述
点击红框进去:
在这里插入图片描述

docker login -u账号  仓库地址(默认:docker Hub)						// 登录远程仓库(语法格式)
docker login -uchlstudy												// 登录到docker hub仓库(默认:无需指定地址)
docker login -u189****3537 registry.cn-hangzhou.aliyuncs.com		// 登录到阿里云镜像仓库

命令操作截图:
在这里插入图片描述
当我们登录到远程仓库后就可以将本地的镜像发送至远程仓库当中,docker登录信息存放在“~/.docker/config.jso”。
在这里插入图片描述

远程仓库退出登录(logout)

docker中logout用于退出一个docker镜像仓库的登录,如果未指定镜像仓库地址,默认为官方“docker hub”仓库。

docker logout  仓库地址(默认:docker Hub)				// 退出远程仓库(语法格式)
docker logout											// 退出docker hub仓库登录
docker logout  registry.cn-hangzhou.aliyuncs.com	    // 退出阿里云镜像仓库登录

提示:退出登录后会在“~/.docker/config.jso”进行对应的删除登录信息,也可以按照登录信息中的登录信息进行对应的退出登录。

镜像标签(tag)

docker中tag用于标记本地镜像并将其归类为某一个仓库

docker tag  镜像名称:版本号  仓库地址/仓库名称/镜像名称:版本号			// 语法格式
// NGINX镜像打标签(docker hub仓库)
docker tag nginx:1.22.0 chlstudy/newnginx:v1.0
// NGINX镜像打标签(阿里云仓库)
docker tag nginx:1.22.0 registry.cn-hangzhou.aliyuncs.com/chlstudy/mynginx:v1.0

在这里插入图片描述
注意:标签的仓库名称、镜像名称一定要与远程仓库中的一致,否则你在上传镜像的到远程仓库的时候可能会报错!!!

镜像推送到远程仓库(push)

docker中push用于将本地镜像上传到远程镜像仓库中,上传的前提需要先登录到对应的镜像仓库。

docker push  镜像名称			// 镜像推送到远程仓库(语法格式)
docker push chlstudy/newnginx:v1.0		// 推送镜像到docker hub仓库(推送很慢)
docker push registry.cn-hangzhou.aliyuncs.com/chlstudy/mynginx:v1.0	// 推送镜像到阿里云

举例(以推送镜像到阿里云为例):当我们将镜像推送到阿里云镜像后可以登录到https://www.aliyun.com/然后“控制台、点击三个标图、找到容器镜像服务、实例列表、个人实例”就可以看见自己的镜像仓库了。
在这里插入图片描述

容器命令

注意:启动容器的时候如报错“警告:IPv4转发已禁用,网络将不起作用”。
在这里插入图片描述
解决办法如下:

echo “net.ipv4.ip_forward = 1>> /etc/sysctl.conf
sysctl --system

启动镜像(run)

可选参数:

  • –name=”name”:为容器设置名称。
  • –detach,-d:后台运行容器并打印容器ID
  • -it:交互式运行(-i保持STDIN标准输入打开、-t分配一个伪TTY)。
  • -p:端口映射(格式“主机端口:容器端口”)。
  • -P:随机指定端口。
  • –rm:当容器退出时自动剔除(用于测试)

说明:docker run命令后面加“/bin/bash”表示载入容器后运行bash,如果不加“/bin/bash”就必须保持一个进程正在运行,否则容器就会关闭,当容器中有一个进程运行时就可以不用加“/bin/bash”。
前台启动:使用“/bin/bash”或“bash”启动终端打开容器。

docker run --name nginx1.22.0 -it -p 80:80 b3c5c59017fb /bin/bash
docker run -it centos /bin/bash			// 这样也可以启动一个CentOS系统容器

在这里插入图片描述
可在浏览器访问:宿主机IP
在这里插入图片描述
注意:启动容器时,它会检测本地是否有该镜像,如果有则直接启动,若没有则去远程仓库下载,如果远程仓库并没有该镜像则会报错。启动过后的容器与本地系统没有任何关系,如需退出容器可使用“exit”,退出后如果容器中没有应用运行则会自动停止。
后台启动:容器使用后台运行必须要有一个前台进程,否则docker会自动停止该容器。

docker run -d centos

在这里插入图片描述

列出容器(ps)

docker ps				// 显示正在运行的容器
docker ps -a			// 显示所有容器(包含已停止容器)
docker ps -q			// 显示当前正在运行的容器ID
docker ps -qa           // 显示所有(包含:正在运行、已停止)

退出容器

exit   								// 停止容器并退出
ctrl + p + q 						// 组合键(容器不停止退出)

容器状态管理(重启、停止、启动)

重启容器:docker restart 容器ID
在这里插入图片描述停止容器:docker stop 容器ID
在这里插入图片描述启动容器:docker start 容器ID
在这里插入图片描述杀死一个或多个正在运行的容器:docker kill 容器ID
在这里插入图片描述

删除容器(rm)

删除指定容器(不能删除正在运行的容器,如需删除需“-f”参数):docker rm 容器ID
删除所有容器(包含正在运行的容器):docker rm -f $(docker ps -qa)
删除所有容器(包含正在运行的容器):docker ps -a -q |xargs docker rm

常用其他命令

查看容器日志(logs)

查看全部日志:参数“-t”时间戳、“-f”跟踪最新的日志打印。

docker logs -tf 容器ID

查看指定数量日志:参数“–tail”显示最新多少条日志。

docker logs -tf  --tail 10 容器ID					// 显示最后十条日志

显示容器中进程信息(top)

docker top 容器ID

在这里插入图片描述

查看镜像信息(inspect)

docker inspect 容器ID

在这里插入图片描述

进入容器(exec)

docker exec -it 容器ID /bin/bash		// 进入容器后开启一个新的终端,可以在里面操作(常用)

在这里插入图片描述

docker attach 容器ID				// 进入容器正在执行的终端,不会启动新的进行

在这里插入图片描述

上传或下载容器文件(cp)

docker cp 容器ID:/容器内文件位置  下载到本地位置			// 下载文件到本地
docker cp 本地文件路径  容器ID:/容器内文件位置			// 上传本地文件到容器
docker cp c059e7bc6835:/etc/nginx/nginx.conf .				// 下载文件到本地
docker cp ./index.html c059e7bc6835:/usr/share/nginx/html/		// 上传本地文件到容器

命令执行结果:
在这里插入图片描述

提交镜像(commit)

当容器中文件或设置进行更新后想保存当前容器的容器状态,可以通过“docker commit”来将容器提交成新的镜像,这种方式类似VMware当中的快照功能。注意:提交操作将不包含安装在容器内的数据卷。
docker commit:提交容器成为新的副本(镜像)

docker commit -m=”提交的描述信息” -a=”作者” 容器ID:[tag]			// 语法格式

实战测试: 提交tomcat镜像

docker pull tomcat:9.0				// 下载tomcat镜像
docker run --name tomcat_01 -it -p8080:8080 b8e65a4d736d		// 启动镜像

命令执行结果:
在这里插入图片描述
浏览器访问(报错):报错的原因是因为tomcat默认没有webapps应用。
在这里插入图片描述
解决此办法:

docker exec -it 9b8116ce6c59 /bin/bash		// 进入容器
cp -r webapps.dist/* webapps/		// 将webapps.dist目录中的内容拷贝到webapps中

访问浏览器:172.66.66.66:8080
在这里插入图片描述
从容器创建新的镜像 :

docker commit -m="webapps" -a="caihonglong" 0cf8cd0c719a chl_tomcat:1.0

在这里插入图片描述

结束语

🐱‍🐉 至此文档就到此结束了, 如果您觉得博主的文章还不错或者有帮助的话,记得点赞、关注、收藏哟!谢谢各位大佬给予的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彩虹龙

您的鼓励将是我创作最大的努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值