当前位置:   article > 正文

Docker镜像与容器的命令与基本操作_docker images grep

docker images grep

目录

一、docker基本命令

1、查看镜像

2、查看所有容器的状态

3、docker的run指令

4、run的工作流程

5、查看docker版本的命令

6、查看docker信息

7、docker帮助命令文档

二、docker镜像操作

1、搜索镜像(公共仓库)

2、下载镜像

3、查看镜像列表

4、获取镜像信息

5、添加镜像标签

6、删除镜像

7、批量删除镜像

8、导出镜像

9、导入镜像

三、docker容器操作的命令

1、查看容器运行状态

2、创建容器

3、启动容器

4、停止容器

5、删除容器

6、创建并启动容器

①举例

②举例

③举例

7、查看容器ip地址

8、进入容器

9、终止容器运行

10、查看容器日志

11、容器导出

12、容器导入

13、宿主机文件与容器文件复制

13.1将宿主机文件复制到容器中

①首先获取目标容器ID

②然后重新打开一个终端,然后创建测试文件导入到指定的容器中

③最后进入容器进行查看

13.2将容器文件复制到宿主机中

14、查看docker消耗的资源状态

15、容器的七大状态


一、docker基本命令

1、查看镜像

  1. #查看下载到本地的所有镜像
  2. docker images

  • REPOSITORY:镜像属于的仓库;
  • TAG:镜像的标签信息,标记同一个仓库中的不同镜像;
  • IMAGE ID:镜像的唯一ID 号,唯一标识一个镜像,经过md5方式加密过;
  • CREATED:镜像创建时间;
  • VIRTUAL SIZE:镜像大小;

2、查看所有容器的状态

docker ps -a    #-a 选项可以显示所有的容器	

字段说明 CONTAINER

  • ID:容器的ID号
  • IMAGE:加载的镜像
  • COMMAND :运行的程序
  • CREATED :创建时间
  • STATUS:当前的状态
  • PORTS:端口映射
  • NAMES:名称 

3、docker的run指令

  1. docker run hello-world
  2. run指令 运行
  3. **检测**本地有没有该镜像(没有的话直接到docker hub上下载)
  4. ②create(将镜像创建为容器)+ start 将创建好的容器运行起来

4、run的工作流程

工作流程:

①首先docker会先在本地检查是否存在指定的镜像,找到的话就直接运行找到的镜像

②如果镜像不在,docker会在镜像远程地址中查找镜像,找到的话直接下载镜像到本地然后运行地址,未找到的话则返回错误提示未找到。

5、查看docker版本的命令

  1. docker version
  2. docker -v

6、查看docker信息

  1. docker info
  2. #可以用该命令统计每一个状态的容器有多少个

7、docker帮助命令文档

docker --help

二、docker镜像操作

1、搜索镜像(公共仓库)

默认是在公共仓库找,如果有私有仓库,会在私有仓库中找

  1. #格式:docker search 关键字
  2. #示例:
  3. docker search nginx
  4. docker search centos:7
  5. ——》同时我们也可以自己制作镜像推送到docker hub上

2、下载镜像

  1. #格式:docker pull 仓库名称[:标签]
  2. #如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为 latest 标签。
  3. docker pull centos:7
  4. docker pull nginx

3、查看镜像列表

docker images

4、获取镜像信息

  1. #格式:docker inspect 镜像ID
  2. #示例:查看nginx镜像信息
  3. docker inspect 41b0e86104ba

5、添加镜像标签

  1. #格式:docker tag 名称:[旧标签] 新名称:[新标签]
  2. #示例:
  3. docker tag nginx:latest nginx:lnmp #给nginx打上标签lnmp,原来的标签是latest

6、删除镜像

docker rmi是docker rm image的简写

  1. #格式:
  2. docker rmi 仓库名称:标签 #当一个镜像有多个标签时,只是删除其中指定的标签
  3. docker rmi 镜像ID号 #会彻底删除该镜像

7、批量删除镜像

  1. #=======删除容器
  2. 格式:docker rm [-f] 容器ID/名称
  3. docker stop 2592d3fad0fb
  4. docker rm 2592d3fad0fb #删除已经终止状态的容器
  5. docker rm -f 2592d3fad0fb #强制删除正在运行的容器
  6. docker ps -a | awk 'NR>=2{print "docker stop "$1}' | bash #批量停止容器
  7. docker ps -a | awk 'NR>=2{print $1}'| xargs docker stop
  8. docker ps -a | awk 'NR>=2{print "docker rm "$1}' | bash #批量删除所有容器
  9. docker ps -a | awk 'NR>=2{print $1}'| xargs docker rm
  10. docker images | awk 'NR>=2{print "docker rmi "$3}'| bash #批量删除镜像
  11. docker images | grep none | awk '{print $3}' | xargs docker rmi #删除none镜像
  12. docker rm $(docker ps -a -q) #批量清理后台停止的容器

8、导出镜像

  1. 格式:docker save -o 存储文件名 存储的镜像
  2. #-o:指定镜像文件名因为是导出来的文件一般是压缩包文件以tar为后缀
  3. #另外一台主机安装好docker使用scp传输到另外一台主机
  4. scp xx.tar 192.168.170.113:`pwd`
  5. #另外一台主机查看并将文件加载到系统中
  6. 例:
  7. docker save -o nginx.tar nginx:latest #存出镜像命名为nginx.tar存在当前目录下
  8. ls -lh
  9. scp nginx.tar root@192.168.170.113:/opt #存出镜像命名为nginx.tar存在另一台机器opt目录下

9、导入镜像

  1. 格式:
  2. docker load < 存出的文件
  3. docker load -i 存出的文件
  4. 例:
  5. docker load < nginx.tar

三、docker容器操作的命令

1、查看容器运行状态

  1. 格式:
  2. docker  ps [选项]
  3. 常见选项:​
  4. docker ps #查看当前运行状态的容器
  5. docker ps -q #只显示运行状态的容器的ID
  6. docker ps -a #-a 选项可以显示所有的容器
  7. docker ps -aq #只显示所有容器的ID
  8. 例如:
  9. docker ps -a #-a 选项可以显示所有的容器
  10. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  11. 8b0a7be0ff58 nginx:latest "/docker-entrypoint.…" 57 seconds ago Created inspiring_swanson
  12. 容器的ID号 加载的镜像 运行的程序 创建时间 当前的状态 端口映射 名称

2、创建容器

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

新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。

  1. 格式:docker create [选项] 镜像
  2. 常用选项:
  3. -i:让容器开启标准输入
  4. -t:让docker分配一个伪终端tty
  5. -it:合起来用实现和容器交互的作用,运行一个交互式会话shell
  6. --name:指定容器名称:不指定会随机生成
  7. 示例:
  8. docker create -it nginx:latest /bin/bash

3、启动容器

  1. 格式:docker start 容器的ID/名称
  2. 例如:docker start adda1e1ba37e

4、停止容器

  1. 格式:docker stop 容器的ID/名称
  2. 例如:docker stop adda1e1ba37e

5、删除容器

  1. 格式:docker rm 容器的id/名称
  2. -f:强制删除正在运行的容器
  3. 例如:docker rm 52b280e1320c

  1. 法一:
  2. docker ps -a |awk 'NR>=2 {print $1}' | xargs docker rm
  3. #查看容器运行状态从第二行开始查看第一个字段并将结果传参给docker rm 删除
  4. 法二:
  5. docker rm $(docker ps -aq)
  6. #将命令的结果付给变量进行删除
  7. 示例:
  8. #格式:docker rm [-f] 容器ID/名称
  9. 1.#不能删除运行状态的容器,只能-f强制删除,或者先停止再删除
  10. docker rm 3224eb044879
  11. 2.#已经退出的容器,可以直接删除
  12. docker rm 1270a6791069
  13. 3.#基于名称匹配的方式删除
  14. docker rm -f distracted_panini
  15. 4.#删除所有运行状态的容器
  16. docker rm -f `docker ps -q`
  17. 5.#删除所有容器
  18. docker rm -f `docker ps -aq`
  19. 6.#有选择性的批量删除 (正则匹配)
  20. docker ps -a l awk ' {print "docker rm "$1}'l bash
  21. 7.#删除退出状态的容器
  22. for i in `dockef ps -a l grep -i exit / awk '{print $1}' '; do docker rm -f $i;done

6、创建并启动容器

可以直接执行docker run命令,等同于先执行docker create命令,再执行docker start 命令
注意:容器是一个与其中运行的shell命令共存亡的终端,命令运行容器运行,命令结束,容器退出

docker容器默认会把容器内部第一个进程,也就是pid=1的程序作为docker容器是否正在运行的依据,如果docker容器中pid=1的进程挂了,那么docker容器便会直接退出,也就是说Docker容器中必须有一个前台进程,否则认为容器已经挂掉

docker run创建容器时,Docker在后台的标准运行过程

检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载;
利用镜像创建并启动一个容器;
分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;
从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中;
分配一个地址池中的IP地址给容器;
执行用户指定的应用程序,执行完毕后容器被终止运行

  1. 格式:docker run [命令] [--name 容器名称] 镜像 [bash] [-c 操作]
  2. bash:指定运行环境
  3. -c:不入容器执行指定命令
  4. -d:后台运行并返回容器id
  5. 前台运行
  6. docker run -it centos:7 bash -c ls /
  7. docker run -i --name test1 centos:7 bash -c ls /
  8. docker ps -a
  9. 加 -d 选项让Docker容器以守护形式在后台运行且容器所运行的程序不能结束
  10. docker run -itd --name test2 centos:7 /bin/bash
  11. #示例1
  12. docker run -itd nginx:latest /bin/bash
  13. #示例2:执行后退出
  14. docker run centos:7 /usr/bin/bash -c ls /
  15. #示例3:执行后不退出,以守护进程方式执行持续性任务
  16. docker run -d centos:7 /usr/bin/bash -c "while true;do echo hello;done"

①举例

②举例

③举例

7、查看容器ip地址

  1. 格式:docker inspect 容器id
  2. 例如:
  3. docker ps -a #先查看运行时容器的id
  4. docker inspect 7903adbc4ff9

8、进入容器

进入容器的容器状态必须是up状态

和shell 是两种运行模式

docker run -it会创建前台进程,但是会在输入exit后终止进程
docker attach会通过连接stdin,连接到容器内输入输出流,会在输入exit后终止容器进程
docker exec -it 会连接到容器,可以像SSH一样进入容器内部,进行操作,可以通过exit退出容器,不影响容器运行

  1. 格式:
  2. docker exec -it id号/名称 bash/sh
  3. #进去容器并指定运行环境
  4. docker exec -it id号/名称 -c 命令
  5. #不进入容器使用命令
  6. 选项:
  7. -i 选项表示让容器的输入保持打开;
  8. -t 选项表示让 Docker 分配一个伪终端
  9. #先运行容器
  10. docker ps -a
  11. #示例一:使用run进入,可以使用ctrl+d退出,直接退出终端
  12. docker run -it centos:7 /bin/bash
  13. #示例二:想永久性进入,退出后还是运行状态,用docker exec
  14. docker ps -a
  15. docker exec -it b99e0771c4e1 /bin/bash
  16. exit #退出容器后,容器仍在运行
  17. #示例三:docker attach,会通过连接stdin,连接到容器内输入输出流,公在输入exit后终止容器进程
  18. (临时性的,不推荐)

9、终止容器运行

  1. 格式:docker stop 容器的ID/名称
  2. 例如:docker stop 38b5218ca96f

10、查看容器日志

  1. 格式:docker logs 容器id
  2. 例如:
  3. #后台启动容器,并使用-P随机映射一个端口
  4. docker run -id -P nginx:latest
  5. docker ps -a #映射端口为32768
  6. #浏览器使用宿主机IP和映射端口号,访问容器
  7. #查看容器日志
  8. docker logs f90ba006d88a

11、容器导出

用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。在迁移过程中,可以使用docker export 命令将已经创建好的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。可将导出文件传输到其他机器,通过相应的导入命令实现容器的迁移。

  1. 导出格式:docker export 容器ID/名称 > 文件名
  2. docker export 2592d3fad0fb > nginxtar

12、容器导入

  1. 导入格式:cat 文件名 | docker import - 镜像名称:标签
  2. cat nginxtar | docker import - nginx:rmh
  3. #导入后会生成镜像,但不会创建容器

在113上运行以下命令

13、宿主机文件与容器文件复制

13.1将宿主机文件复制到容器中
  1. 格式:docker cp 文件路径 容器id:目录
  2. #当前家目录下有一个zhuo.txt文件 复制到容器里
  3. docker cp ./rmh.txt 38b5218ca96f:/opt
①首先获取目标容器ID

②然后重新打开一个终端,然后创建测试文件导入到指定的容器中

③最后进入容器进行查看

13.2将容器文件复制到宿主机中
  1. 格式:docker cp 容器id:文件路径 目标目录
  2. #当前容器有一个rmh.txt文件 复制到宿主机data文件夹里
  3. docker cp 38b5218ca96f:/opt/zhuo.txt /data

14、查看docker消耗的资源状态

docker stats

15、容器的七大状态

docker容器生命周期docker容器:七个状态
①cerated 已创建,还未运行的容器

②running:正在运行中的容器

③restarting:容器正在重启中

④removeing:谷器正在迁移中

⑤paused:已暂停状态的容器

⑥exited:停止状态的容器

⑦dead 死亡 主要是操作系统出现异常 或 断点关机等有可能引发dead状态

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/1008152
推荐阅读
相关标签
  

闽ICP备14008679号