Docker(二)---常用命令

目录

一、Docker 镜像操作

搜索镜像--docker search

 获取镜像--docker pull

查看镜像信息--docker images/inspect/tag

删除镜像--docker rmi 

输出镜像和载入镜像

上传镜像-docker login/push

 二、Docker 容器操作

容器的创建与使用-docker create/ps/start/run

 容器的运行与终止-docker stop

 容器的进入-docker exec 

 容器的导出与导入-docker export /import 

 容器的删除-docker rm 


一、Docker 镜像操作

Docker 运行容器前需要本地存在对应的镜像,如果不存在本地镜像,Docker 就会尝试从默认镜像仓库【https://hub.docker.com】下载,这是 Docker 官方维护的一个公共仓库,可以满足用户的绝大部分需求

当然了,用户也可以通过配置来使用自定义的镜像仓库

搜索镜像--docker search

'命令格式:'
docker search [对象]

'例:'
docker search nginx

'#默认输出结果会按照星级评价进行排序'

docker search -f stars=1000 nginx

'#可以使用选项"-f"配合"stars=x"显示指定星级以上的镜像'

  •  一般官方项目组维护的镜像使用单个单词,例如【nginx】作为镜像名称,我们称之为基础镜像或根镜像
  • 像【mailu/nginx】这种命名方式的镜像,表示是由 Docker Hub 的用户【mailu】创建并维护的镜像,带有用户名为前缀
  • 是否主动创建表示是否允许用户验证镜像的来源和内容
  • 使用【docker search】命令只能查找镜像,无法获取镜像的标签,若需要查找 docker 的标签,需要从网页上访问镜像仓库【https://hub.docker.com】

 获取镜像--docker pull

搜索到了符合需求的镜像,我们可以使用【docker pull】命令从网络下载镜像到本地使用

'命令格式:'
docker pull [仓库名称][:标签]

'例:'
docker pull mailu/nginx

  • 标签【tag】就是用来区分镜像版本的,可以看到没有指定标签,这里会默认下载仓库中最新版本的镜像,即选择【latest】标签
  • 在整个下载的过程中,我们可以看出,整个镜像文件是由若干层【layer】组成,我们将其称之为【AUFS】,即联合文件系统,其实现了增量保存与更新的基础,在下载过程中会输出镜像的各层信息
  • 镜像下载到本地后,我们就可以随时使用该镜像了
  • 用户也可以选择从其他注册服务器仓库下载,需要在仓库名称前指定完整的仓库注册服务器地址
     

查看镜像信息--docker images/inspect/tag

'命令格式:'
docker images [仓库名称][:标签]

'例:'
docker images

信息 说明
REPOSITORY 镜像属于的仓库
TAG 镜像的标签信息,标记了同一个仓库中的不同镜像
IMAGE ID 镜像的唯一 ID 号,是镜像的唯一标识
CREATED 镜像的创建时间
SIZE 镜像的大小

用户还可以根据镜像的唯一标识 ID 号来获取镜像的详细信息

'命令格式:'
docker inspect [镜像ID号]

'例:'
docker inspect 23089a8ec5aa

'#这是wodby/nginx的镜像ID号'
'#显示篇幅较长'

为了更方便在后续的工作中使用下载好的镜像,我们可以使用【docker tag】命令来为本地的镜像添加新的标签

'命令格式:'
docker tag 名称:[标签] 新名称:[新标签]

'例:'
docker tag wodby/nginx nginx123:nginx

docker images|grep nginx

删除镜像--docker rmi 

可以使用【docker rmi】命令删除镜像

删除镜像的方法有两种:使用镜像的标签或 ID

'命令格式:'
docker rmi [仓库名称][:标签]
或
docker rmi [镜像ID号]

'例:'
docker images|grep nginx

docker rmi nginx123:nginx

'#当一个镜像有多个标签时,该命令只会删除多少标签中的这个指定标签,而不会影响镜像文件'
'#若该镜像只有一个标签就要注意了,再使用该命令会直接彻底删除该镜像!'

docker rmi 97788821c58b

'#选择参数为镜像ID号时要谨慎,必须首先确保该镜像当前没有被容器使用'
'#如果该镜像已被容器使用,则需先删除所以依赖该镜像的容器,再删除该镜像'
'#删除时系统会先删除指向该镜像的所有标签,然后删除镜像本身'

docker images|grep nginx

输出镜像和载入镜像

如果你需要进行镜像迁移,需要先将镜像保存至本地文件,之后可以拷贝该文件至其他主机

这一过程称之为存出镜像,使用【docker save】命令操作

'命令格式:'
docker save -o [存储文件名] [存储镜像]

'例:'
docker save -o nginx nginx
ls -l nginx

--
scp nginx [email protected]:nginx

'#传至另一台主机'

如果需要将存出的镜像从主机 A 迁移至主机 B 上使用,可以将该导出文件导入到主机 B 的镜像库中

这一过程称之为载入镜像,使用【docker load】进行载入操作

'命令格式:'
docker load <[存出文件]

'例:'
docker load <nginx

docker images|grep nginx

上传镜像-docker login/push

在本地存出的镜像越来越多,我们可以指定一个仓库来存放这些镜像

目前最方便的就是公共仓库,默认是上传到 Docker Hub 官方仓库,但需要注册使用公共仓库的账号,可以使用【docker login】命令输入用户名、密码和邮箱来登录

'例:'
docker login

--
'需要先去【https://hub.docker.com】注册一个账号,注册过程很简单'

 在上传镜像前需要对本地镜像添加新的标签,然后再使用【docker push】命令进行上传

'命令格式:'
docker tag [名称][:标签] [账号名][/名称][:新标签]
docker push [账号名][/名称][:新标签]

'例:'
docker tag nginx:latest qq1571276901/nginx:centos7
docker push qq1571276901/nginx:centos7

 二、Docker 容器操作

容器是 Docker 的另一个核心概念:

  1. 容器是镜像的一个运行实例,是独立运行的一个或一组应用以及它们所必需的运行环境
  2. 包括文件系统、系统类库、Shell 环境等等
  3. 镜像就像一个只读模板,而容器会给这个只读模板一个额外的可写层

容器的创建与使用-docker create/ps/start/run

容器的创建就是将镜像加载到容器的过程:

  1. Docker 的容器十分的轻量级,用户可以随机创建或删除
  2. 新创建的容器默认处于停止状态,即不会自行开始运行任何程序
  3. 需要开启一个进程来启动容器,该进程是容器的唯一进程,即该进程终止时,容器也会被完全终止
  4. 停止后的容器可以重启启动并保留原有的修改
'命令格式:'
docker create [选项] [镜像] [运行的程序]

'常用选项:'
-i:让容器的输出保持打开
-t:让Docker分配一个伪终端

'例:'
docker create -it nginx /bin/bash

'#创建新容器后,会返回一个唯一的ID'

--
docker ps -a

'#可以使用该命令查看索引容器的运行状态'
'#“-a”选项表示列出系统最近一次启动的容器'

--
docker start [容器的ID/名称]

'#启动停止状态下的容器'

如果想直接创建并使用容器,可以使用【docker run】命令,等同于先执行【docker create】,再执行【docker start】

需要注意的是,执行该命令,只要后面的命运行结束,容器就会停止

使用【docker run】命令创建容器时,Docker 在后台的标准运行过程:

  1. 检查本地是否存在指定镜像,若不存在,则会从公共仓库下载
  2. 利用镜像创建并启动一个容器
  3. 分配一个文件系统给容器,在只读的镜像层外挂载一层可读写层
  4. 从宿主机配置的网桥接口中桥接一个虚拟机至容器中
  5. 分配一个地址池中的 IP 给容器
  6. 执行用户指定的应用程序
  7. 执行完毕后容器被终止运行
'例:创建容器并启动执行一条shell命令'
docker run centos /usr/bin/bash -c ls /

--
docker ps -a

'#查看容器的状态,会发现在执行完命令后就终止了'

--
docker run -d centos /usr/bin/bash -c "while true;do echo hello world;done"

'#可以添加“-d”选项,可以让docker以守护进程形式在后台运行,即可以在后台持续运行该容器'
'#注:该容器所运行的程序一旦结束,容器也就会被终止'

docker ps -a

 

 容器的运行与终止-docker stop

'命令格式:'
docker stop [容器的ID/名称]

'例:'
docker stop fcd5691107cf
docker stop a17b5d224f47

docker ps -a

'#Exuted即终止状态'

 容器的进入-docker exec 

需要进入容器进行相应操作时,可以使用【docker exec】命令进入运行中的容器

'命令格式:'
docker exec -it [容器ID/名称] /bin/bash

'例:'
docker exec -it 4aa9da25318d /bin/bash

'#用户可以通过所创建的终端来输入命令'

 容器的导出与导入-docker export /import 

用户可以将任何一个 Docker 从一台主机迁移至任意一台主机:

  1. 首选需要将已创建好的容器导出为文件,使用【docker export】命令实现,该容器当前处于运行状态也可以正常导出
  2. 导出后将该文件传输至其他主机,通过相应的导入命令以实现容器的迁移
  3. 与镜像的迁移基本同理
'命令格式:'
docker export [容器ID/名称] >文件名

'例:'
docker export 4aa9da25318d >nginx01
ls -l nginx01 

--
scp nginx01 [email protected]:nginx01

前往远程输出至的主机进行下一步操作

使用【docker import】命令导入,成为镜像

'命令格式:'
docker import [文件名] [生成的镜像名称][:标签]

'例:'
docker import centos centos:7
'#导入文件nginx01成为本地镜像'

--
docker images |grep centos

 容器的删除-docker rm 

可以使用【docker rm】命令将一个已处于终止状态的容器删除

'命令格式:'
docker rm [容器ID/名称]

'例:'
docker ps -a

docker rm docker rm fcd5691107cf a17b5d224f47 cf7eb18ebf28 fb95ffa44044 2ee2c9d515b3 e88f1ded4cd

docker ps -a

 如果要删除一个正在运行的容器,可以添加“-f”选项以强制删除,但是不建议这么做,最好先停止容器再进行删除操作!

Docker 默认的存储目录在 /var/lib/docker,Docker 的镜像、容器、日志等内容全部都存储于此
可以单独使用大容量的分区来存储这些内容,并且一般选择建立 LVM 逻辑卷,从而避免 Docker 在运行的过程中发生存储目录容量不足的问题

Supongo que te gusta

Origin blog.csdn.net/Arlssaze/article/details/121750894
Recomendado
Clasificación