docker search 显示全部以及tag docker显示所有容器命令_容器


文章目录

  • 官方地址
  • 显示版本信息
  • 显示Docker系统信息
  • 镜像命令
  • 查看本地镜像(images)
  • 搜索镜像(search)
  • 下载镜像(pull)
  • 删除镜像(rmi)
  • 远程仓库登录(login)
  • 远程仓库退出登录(logout)
  • 镜像标签(tag)
  • 镜像推送到远程仓库(push)
  • 容器命令
  • 启动镜像(run)
  • 列出容器(ps)
  • 退出容器
  • 容器状态管理(重启、停止、启动)
  • 删除容器(rm)
  • 常用其他命令
  • 查看容器日志(logs)
  • 显示容器中进程信息(top)
  • 查看镜像信息(inspect)
  • 进入容器(exec)
  • 上传或下载容器文件(cp)
  • 提交镜像(commit)


官方地址

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

显示版本信息

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

执行“docker version”分别会输出“Client”客户端和“Server”服务端相关信息,如果“server”端没启动就不会显示相关“server”端信息。

docker search 显示全部以及tag docker显示所有容器命令_nginx_02


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				 // 显示本地所有镜像

输出结果:

docker search 显示全部以及tag docker显示所有容器命令_容器_03


输出说明:REPOSITORY(镜像的仓库源)、TAG(镜像的标签)、IMAGE ID(镜像ID)、CREATED(镜像创建时间)、SIZE(镜像大小)。

注意:镜像的大小并不一定是该镜像的真实大小,因为存在联合文件系统层级关系。

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

输出结果:

docker search 显示全部以及tag docker显示所有容器命令_远程仓库_04

搜索镜像(search)

docker search nginx					// 搜索NGINX镜像

注意:推荐使用官方的镜像,不要使用第三方镜像,可能会存在病毒。

docker search 显示全部以及tag docker显示所有容器命令_docker_05


搜索指定大小镜像:可使用“–filter=stars=3000”这里3000是镜像的星级大小。

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

docker search 显示全部以及tag docker显示所有容器命令_容器_06

下载镜像(pull)

docker pull nginx						// 下载NGINX镜像

注意:默认不指定版本号则下载最新版本的nginx镜像。

docker search 显示全部以及tag docker显示所有容器命令_容器_07


输出说明: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 search 显示全部以及tag docker显示所有容器命令_远程仓库_08


点击红框进去:

docker search 显示全部以及tag docker显示所有容器命令_学习_09

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

命令操作截图:

docker search 显示全部以及tag docker显示所有容器命令_容器_10


当我们登录到远程仓库后就可以将本地的镜像发送至远程仓库当中,docker登录信息存放在“~/.docker/config.jso”。

docker search 显示全部以及tag docker显示所有容器命令_远程仓库_11

远程仓库退出登录(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

docker search 显示全部以及tag docker显示所有容器命令_远程仓库_12


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

镜像推送到远程仓库(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/然后“控制台、点击三个标图、找到容器镜像服务、实例列表、个人实例”就可以看见自己的镜像仓库了。

docker search 显示全部以及tag docker显示所有容器命令_学习_13

容器命令

注意:启动容器的时候如报错“警告:IPv4转发已禁用,网络将不起作用”。

docker search 显示全部以及tag docker显示所有容器命令_容器_14


解决办法如下:

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系统容器

docker search 显示全部以及tag docker显示所有容器命令_远程仓库_15


可在浏览器访问:宿主机IP

docker search 显示全部以及tag docker显示所有容器命令_nginx_16


注意:启动容器时,它会检测本地是否有该镜像,如果有则直接启动,若没有则去远程仓库下载,如果远程仓库并没有该镜像则会报错。启动过后的容器与本地系统没有任何关系,如需退出容器可使用“exit”,退出后如果容器中没有应用运行则会自动停止。

后台启动:容器使用后台运行必须要有一个前台进程,否则docker会自动停止该容器。

docker run -d centos

docker search 显示全部以及tag docker显示所有容器命令_远程仓库_17

列出容器(ps)

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

退出容器

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

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

重启容器:docker restart 容器ID

docker search 显示全部以及tag docker显示所有容器命令_远程仓库_18

停止容器:docker stop 容器ID

docker search 显示全部以及tag docker显示所有容器命令_容器_19

启动容器:docker start 容器ID

docker search 显示全部以及tag docker显示所有容器命令_nginx_20

杀死一个或多个正在运行的容器:docker kill 容器ID

docker search 显示全部以及tag docker显示所有容器命令_学习_21

删除容器(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

docker search 显示全部以及tag docker显示所有容器命令_学习_22

查看镜像信息(inspect)

docker inspect 容器ID

docker search 显示全部以及tag docker显示所有容器命令_nginx_23

进入容器(exec)

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

docker search 显示全部以及tag docker显示所有容器命令_容器_24

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

docker search 显示全部以及tag docker显示所有容器命令_远程仓库_25

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

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

命令执行结果:

docker search 显示全部以及tag docker显示所有容器命令_远程仓库_26

提交镜像(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		// 启动镜像

命令执行结果:

docker search 显示全部以及tag docker显示所有容器命令_远程仓库_27


浏览器访问(报错):报错的原因是因为tomcat默认没有webapps应用。

docker search 显示全部以及tag docker显示所有容器命令_nginx_28


解决此办法:

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

访问浏览器:172.66.66.66:8080

docker search 显示全部以及tag docker显示所有容器命令_nginx_29


从容器创建新的镜像 :

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

docker search 显示全部以及tag docker显示所有容器命令_nginx_30

结束语

🐱🐉 至此文档就到此结束了,谢谢各位大佬给予的支持!