镜像

镜像是一个Docker的可执行文件,其中包括运行应用程序所需的所有代码内容、依赖库、环境变量和配置文件等。

通过镜像可以创建一个或多个容器。

docker search 镜像搜索

  1. 作用:
  2. 搜索Docker Hub(镜像仓库)上的镜像
  3. 命令格式:
  4. docker search [OPTIONS] TERM
  5. 命令参数(OPTIONS):
  6. -f, --filter filter 根据提供的格式筛选结果
  7. --format string 利用Go语言的format格式化输出结果
  8. --limit int 展示最大的结果数,默认25
  9. --no-trunc 内容全部显示
  10. 命令示例
  11. docker search hello

docker images/docker image ls 查看镜像

  1. 作用:
  2. 列出本地镜像
  3. 命令格式:
  4. docker images [OPTIONS] [REPOSITORY[:TAG]]
  5. 或者 docker image ls [OPTIONS] [REPOSITORY[:TAG]]
  6. 命令参数(OPTIONS):
  7. -a, --all 展示所有镜像 (默认隐藏底层的镜像)
  8. --no-trunc 不缩略显示
  9. -q, --quiet 只显示镜像ID
  10. 命令示例:
  11. docker images centos:latest

docker pull 下载镜像

  1. 作用:
  2. 下载远程仓库(如Docker Hub)中的镜像
  3. 命令格式:
  4. docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  5. 命令参数(OPTIONS):
  6. -a, --all-tags 下载所有符合给定tag的镜像
  7. 命令示例:
  8. docker pull python:3.6
  9. docker pull redis

docker rmi/docker image rm 删除镜像

  1. 作用:
  2. 将本地的一个或多个镜像删除
  3. 命令格式:
  4. docker rmi [OPTIONS] IMAGE [IMAGE...]
  5. 或者 docker image rm [OPTIONS] IMAGE [IMAGE...]
  6. 命令参数(OPTIONS):
  7. -f, --force 强制删除
  8. 命令示例:
  9. docker rmi d1a364dc548d

docker save 镜像保存备份

  1. 作用:
  2. 将本地的一个或多个镜像打包保存成本地tar文件(输出到STDOUT)
  3. 命令格式:
  4. docker save [OPTIONS] IMAGE [IMAGE...]
  5. 命令参数(OPTIONS):
  6. -o, --output string 指定写入的文件名和路径
  7. 命令示例:
  8. docker save -o linux_images.tar centos ubuntu

docker load 镜像备份导入

  1. 作用:
  2. save命令打包的镜像导入本地镜像库中
  3. 命令格式:
  4. docker load [OPTIONS]
  5. 命令参数(OPTIONS):
  6. -i, --input string 指定要打入的文件,如没有指定,默认是STDIN
  7. -q, --quiet 不打印导入过程信息
  8. 命令示例:
  9. docker load -i linux_images.tar -q

docker tag 镜像重命名

  1. 作用:
  2. 对本地镜像的NAMETAG进行重命名,并新产生一个命名后镜像
  3. 命令格式:
  4. docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  5. 命令参数(OPTIONS):
  6. 命令示例
  7. docker tag d1a364dc548d centos-newname:newtag

docker image inspect/docker inspect 镜像详细信息

  1. 作用:
  2. 查看本地一个或多个镜像的详细信息
  3. 命令格式:
  4. docker image inspect [OPTIONS] IMAGE [IMAGE...]
  5. 或者 docker inspect [OPTIONS] IMAGE [IMAGE...]
  6. 命令参数(OPTIONS):
  7. -f, --format string 利用特定Go语言的format格式输出结果
  8. 命令示例:
  9. docker image inspect -f "{{json .Created}}" centos

docker history 镜像历史信息

  1. 作用:
  2. 查看本地一个镜像的历史(历史分层)信息
  3. 命令格式:
  4. docker history [OPTIONS] IMAGE
  5. 命令参数(OPTIONS):
  6. -H, --human 将创建时间、大小进行优化打印(默认为true)
  7. -q, --quiet 只显示镜像ID
  8. --no-trunc 不缩略显示
  9. 命令演示
  10. docker history ubuntu -H=false

镜像与容器 - 图2

容器

容器(Container):容器是一种轻量级、可移植、并将应用程序进行的打包的技术,使应用程序可以在几乎任何地方以相同的方式运行 •Docker将镜像文件运行起来后,产生的对象就是容器。容器相当于是镜像运行起来的一个实例。 •容器具备一定的生命周期。 •另外,可以借助docker ps命令查看运行的容器,如同在linux上利用ps命令查看运行着的进程那样。

容器的生命周期

镜像与容器 - 图3

docker create 容器创建

  1. 作用:
  2. 利用镜像创建出一个Created 状态的待启动容器
  3. 命令格式:
  4. docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
  5. 命令参数(OPTIONS):查看更多
  6. -t, --tty 分配一个伪TTY,也就是分配虚拟终端
  7. -i, --interactive 即使没有连接,也要保持STDIN打开
  8. --name 为容器起名,如果没有指定将会随机产生一个名称
  9. 命令参数(COMMAND\ARG):
  10. COMMAND 表示容器启动后,需要在容器中执行的命令,如psls 等命令
  11. ARG 表示执行 COMMAND 时需要提供的一些参数,如ps 命令的 auxls命令的-a等等
  12. 命令演示:
  13. docker create --name test-container centos ps -A
  14. docker create -ti --name test-container2 centos /bin/bash
  15. docker ps -a

docker start 容器启动

  1. 作用:
  2. 将一个或多个处于创建状态或关闭状态的容器启动起来
  3. 命令格式:
  4. docker start [OPTIONS] CONTAINER [CONTAINER...]
  5. 命令参数(OPTIONS):
  6. -a, --attach 将当前shell STDOUT/STDERR 连接到容器上
  7. -i, --interactive 将当前shell STDIN连接到容器上
  8. 命令演示:
  9. docker ps -a
  10. docker start -a 65ebc
  11. docker start test-container2

docker run 容器创建并启动

  1. 作用:
  2. 利用镜像创建并启动一个容器
  3. 命令格式:
  4. docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  5. 命令参数(OPTIONS):查看更多
  6. -t, --tty 分配一个伪TTY,也就是分配虚拟终端
  7. -i, --interactive 即使没有连接,也要保持STDIN打开
  8. --name 为容器起名,如果没有指定将会随机产生一个名称
  9. -d, --detach 在后台运行容器并打印出容器ID
  10. --rm 当容器退出运行后,自动删除容器
  11. 命令参数(COMMAND\ARG):
  12. COMMAND 表示容器启动后,需要在容器中执行的命令,如psls 等命令
  13. ARG 表示执行 COMMAND 时需要提供的一些参数,如ps 命令的 auxls命令的-a等等
  14. 命令演示:
  15. docker run centos ps -A
  16. docker run -d centos ps -A
  17. docker run --rm -d centos ps -A
  18. docker run -d centos ps -A

docker pause 容器暂停

  1. 作用:
  2. 暂停一个或多个处于运行状态的容器
  3. 命令格式:
  4. docker pause CONTAINER [CONTAINER...]
  5. 命令参数(OPTIONS):
  6. 命令演示
  7. docker ps -a
  8. docker pause test-container2
  9. docker ps -a # 容器是Pause状态

docker unpause 容器取消暂停

  1. 作用:
  2. 取消一个或多个处于暂停状态的容器,恢复运行
  3. 命令格式:
  4. docker unpause CONTAINER [CONTAINER...]
  5. 命令参数(OPTIONS):
  6. 命令演示:
  7. docker unpause test-container2
  8. docker ps -a # 处于运行状态

docker stop 容器关闭

  1. 作用:
  2. 关闭一个或多个处于暂停状态或者运行状态的容器
  3. 命令格式:
  4. docker stop [OPTIONS] CONTAINER [CONTAINER...]
  5. 命令参数(OPTIONS):
  6. -t, --time int 关闭前,等待的时间,单位秒(默认 10s)
  7. 命令演示:
  8. docker stop -t 1 容器id

docker kill 容器终止

  1. 作用:
  2. 强制并立即关闭一个或多个处于暂停状态或者运行状态的容器
  3. 命令格式:
  4. docker kill [OPTIONS] CONTAINER [CONTAINER...]
  5. 命令参数(OPTIONS):
  6. -s, --signal string 指定发送给容器的关闭信号 (默认“KILL”信号)
  7. 命令演示:
  8. docker kill test-container2

docker restart 容器重启

  1. 作用:
  2. 重启一个或多个处于运行状态、暂停状态、关闭状态或者新建状态的容器
  3. 该命令相当于stopstart命令的结合
  4. 命令格式:
  5. docker restart [OPTIONS] CONTAINER [CONTAINER...]
  6. 命令参数(OPTIONS):
  7. -t, --time int 重启前,等待的时间,单位秒(默认 10s)
  8. 实则是关闭前等待的时间

docker container rm 容器删除

  1. 作用:
  2. 删除一个或多个容器
  3. 命令格式:
  4. docker container rm [OPTIONS] CONTAINER [CONTAINER...]
  5. 或者 docker rm [OPTIONS] CONTAINER [CONTAINER...]
  6. 命令参数(OPTIONS):
  7. -f, --force 强行删除容器(会使用 SIGKILL信号)
  8. -v, --volumes 同时删除绑定在容器上的数据卷
  9. 命令演示
  10. docker rm -f 容器id 容器名

docker container inspect 容器详细信息

  1. 作用:
  2. 查看本地一个或多个容器的详细信息
  3. 命令格式:
  4. docker container inspect [OPTIONS] CONTAINER [CONTAINER...]
  5. 或者 docker inspect [OPTIONS] CONTAINER [CONTAINER...]
  6. 命令参数(OPTIONS):
  7. -f, --format string 利用特定Go语言的format格式输出结果
  8. -s, --size 显示总大小
  9. 命令演示
  10. docker container inspect -f "{{json .State.Status}}" 容器id
  11. docker container inspect 容器id

docker logs 容器日志信息

  1. 作用:
  2. 查看容器的日志信息
  3. 命令格式:
  4. docker logs [OPTIONS] CONTAINER
  5. 命令参数(OPTIONS):
  6. --details 显示日志的额外信息
  7. -f, --follow 动态跟踪显示日志信息
  8. --since string 只显示某事时间节点之后的
  9. --tail string 显示倒数的行数(默认全部)
  10. -t, --timestamps 显示timestamps时间
  11. --until string 只显示某事时间节点之前的
  12. 注意:
  13. 容器日志中记录的是容器主进程的输出STDOUT\STDERR

docker rename 容器重命名

  1. 作用:
  2. 修改容器的名称
  3. 命令格式:
  4. docker rename CONTAINER NEW_NAME
  5. 命令参数(OPTIONS):

docker attach 容器连接

  1. 作用:
  2. 将当前终端的STDINSTDOUTSTDERR绑定到正在运行的容器的主进程上实现连接
  3. 命令格式:
  4. docker attach [OPTIONS] CONTAINER
  5. 命令参数(OPTIONS):
  6. --no-stdin 不绑定STDIN

docker exec 容器中执行新命令

  1. 作用:
  2. 在容器中运行一个命令
  3. 命令格式:
  4. docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  5. 命令参数(OPTIONS):
  6. -d, --detach 后台运行命令
  7. -i, --interactive 即使没连接容器,也将当前的STDIN绑定上
  8. -t, --tty 分配一个虚拟终端
  9. -w, --workdir string 指定在容器中的工作目录
  10. -e, --env list 设置容器中运行时的环境变量

docker commit 容器提交

  1. 作用:
  2. 根据容器生成一个新的镜像
  3. 命令格式:
  4. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  5. 命令参数(OPTIONS):
  6. -a, --author string 作者
  7. -c, --change list 为创建的镜像加入Dockerfile命令
  8. -m, --message string 提交信息,类似git commit -m
  9. -p, --pause 提交时暂停容器 (default true)
  10. 命令演示
  11. docker run --rm -dti centos bash
  12. docker exec -d 容器id yum -y install net-tools
  13. docker commit -m 'install net-tools' 容器id centos-net-tools:lastest
  14. docker images
  15. docker history centos-net-tools

docker export 容器导出

  1. 作用:
  2. 将容器当前的文件系统导出成一个tar文件
  3. 命令格式:
  4. docker export [OPTIONS] CONTAINER
  5. 命令参数(OPTIONS):
  6. -o, --output string 指定写入的文件,默认是STDOUT

docker import 容器打包的导入

  1. 作用:
  2. 从一个tar文件中导入内容创建一个镜像
  3. 命令格式:
  4. docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
  5. 命令参数(OPTIONS):
  6. -c, --change list 为创建的镜像加入Dockerfile命令
  7. -m, --message string 导入时,添加提交信息

镜像与容器 - 图4