美文网首页工作生活
docker 镜像操作

docker 镜像操作

作者: 爱吃豆包 | 来源:发表于2019-07-01 18:56 被阅读0次

1.查询镜像

docker search [options] {镜像名称} // 比如: docker search centos 

其他可选参数 [options]

'-f, --filter' filter: 过滤输出内容;  // 这个参数比较重要,可以过滤
' --format' string: 格式化输出内容;
 '--limit' int:限制输出结果个数, 默认为 25个;
 '--no-trunc':  不截断输出结果。

比如搜寻 centos 的官方镜像

docker search --filter=is-official=true centos

2.拉取镜像

docker pull {镜像名称} // 比如: docker pull centos

注意:拉取镜像的时候可以设置拉取这个镜像的版本 [name:tag], tag 表示标签(一般表示版本), 不指定tag 都是按照最新版本拉取

docker pull centos:7 // 拉取centos版本为 7 

3.查看镜像

docker images [options] 或者 docker image ls [options] // 查看本地已拉取的所有镜像列表

输出信息

REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
centos                     latest              9f38484d220f        3 months ago        202MB
hello-world                latest              fce289e99eb9        6 months ago        1.84kB
docker4w/nsenter-dockerd   latest              2f1c802f322f        8 months ago        187kB

在列出信息中, 可以看到几个字段信息:
1.来自于哪个仓库, 比如 ubuntu 表示ubuntu 系列的基础镜像;
2.镜像的标签(一般表示版本)信息, 比如 7、6.9、 latest 表示不同的版本信息。 标签只是标记, 并不能标识镜像内容;
3.镜像的ID(唯一标识镜像), 如果两个镜像的ID相同, 说明它们实际上指向了同一个镜像, 只是具有不同标签名称而已;
4.创建时间, 说明镜像最后的更新时间;
5.镜像大小, 优秀的镜像往往体积都较小。

其他可选参数 [options] 这里只列出几个

'-a, --all=true | false': 列出所有(包括临时文件)镜像文件,默认为否;
'--digests=true | false': 列出镜像的数字摘要值,默认为否;
'-f, --filter=[]' : 过滤列出的镜像, 如dangling 式 rue 只显示没有被使用的镜像; // 这个比较有用

4.删除镜像

docker rmi [镜像名称:标签] 或 docker image rm [镜像名称:标签]  // 命令可以删除镜像

比如删除 centos

docker rmi centos:latest // 表示删除 centos 镜像,并且是最新的版本(latest表示最新版本)

比如用镜像ID删除

docker rmi 9f38484d220f // 通过镜像ID 删除镜像

其他可选参数 [options] 这里只列出几个

'-f,  -force':  强制删除镜像, 即使有容器依赖它; // 比如 docker rmi -f centos:latest 强制删除 centos 镜像
'-no-prune':  不要清理未带标签的父镜像。

不推荐使用 -f 参数来强制删除 一 个存在容器依赖的镜像。 正确的做法是,先删除依赖该镜像的所有容器, 再来删除镜像

比如先查询出这个运行的容器

docker container ls --all 或者 docker ps -a  // 查询出正在运行的容器

输出

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES
908704e5fa22        hello-world         "/hello"            About an hour ago   Exited (0) About an hour ago                       quirky_lamport

通过容器ID先删除容器

docker rm 908704e5fa22 // 删除这个容器

然后在根据这个容器的镜像

docker rmi 9f38484d220f // 通过镜像ID 删除镜像

5.清理镜像

使用Docker 一 段时间后, 系统中可能会遗留一些临时的镜像文件, 以及 一 些没有被使用的镜像

docker image prune [options] // 清理镜像文件

其他可选参数 [options]

'-a, -all': 删除所有无用镜像, 不光是临时镜像;
'-filter filter': 只清理符合给定过滤器的镜像;
'-f, -force': 强制删除镜像, 而不进行提示确认。 // docker image prune -f

6.启动镜像

docker run [OPTIONS] IMAGE [COMMAND] [ARG...] // 启动镜像

其他可选参数 [options]

   `-d, --detach=false`, 指定容器运行于前台还是后台,默认为false
   `-i, --interactive=false`, 打开STDIN,用于控制台交互
   `-t, --tty=false`, 分配tty设备,该可以支持终端登录,默认为false
   `-u, --user=""`, 指定容器的用户
   `-a, --attach=[]`, 登录容器(必须是以docker run -d启动的容器)
   `-w, --workdir=""`, 指定容器的工作目录
   `-c, --cpu-shares=0`, 设置容器CPU权重,在CPU共享场景使用
   `-e, --env=[]`, 指定环境变量,容器中可以使用该环境变量
   `-m, --memory=""`, 指定容器的内存上限
   `-P, --publish-all=false`, 指定容器暴露的端口
   `-p, --publish=[]`, 指定容器暴露的端口
   `-h, --hostname=""`, 指定容器的主机名
   `-v, --volume=[]`, 给容器挂载存储卷,挂载到容器的某个目录
   `--volumes-from=[]`, 给容器挂载其他容器上的卷,挂载到容器的某个目录
   `--cap-add=[]`, 添加权限,权限清单详见:[http://linux.die.net/man/7/capabilities](http://linux.die.net/man/7/capabilities)
   `--cap-drop=[]`, 删除权限,权限清单详见:[http://linux.die.net/man/7/capabilities](http://linux.die.net/man/7/capabilities)
   `--cidfile=""`, 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法
   `--cpuset=""`, 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU
   `--device=[]`, 添加主机设备给容器,相当于设备直通
   `--dns=[]`, 指定容器的dns服务器
   `--dns-search=[]`, 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件
   `--entrypoint=""`, 覆盖image的入口点
   `--env-file=[]`, 指定环境变量文件,文件格式为每行一个环境变量
   `--expose=[]`, 指定容器暴露的端口,即修改镜像的暴露端口
   `--link=[]`, 指定容器间的关联,使用其他容器的IP、env等信息
   `--lxc-conf=[]`, 指定容器的配置文件,只有在指定--exec-driver=lxc时使用
   `--name=""`, 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
   `--net="bridge"`, 容器网络设置:
       bridge 使用docker daemon指定的网桥
       host //容器使用主机的网络
       container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源
       none 容器使用自己的网络(类似--net=bridge),但是不进行配置
   `--privileged=false`, 指定容器是否为特权容器,特权容器拥有所有的capabilities
   `--restart="no"`, 指定容器停止后的重启策略:
       no:容器退出时不重启
       on-failure:容器故障退出(返回值非零)时重启
       always:容器退出时总是重启
   `--rm=false`, 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
   `--sig-proxy=true`, 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理

示例

  • 运行一个在后台执行的容器,同时,还能用控制台管理:
docker run -i -t -d centos:latest
  • 运行一个带命令在后台不断执行的容器,不直接展示容器内部信息:
docker run -d centos:latest ping www.docker.com
  • 运行一个在后台不断执行的容器,同时带有命令,程序被终止后还能重启继续跑,还能用控制台管理,
docker run -d --restart=always centos:latest ping www.docker.com
  • 为容器指定一个名字,
docker run -d --name= centos_server centos:latest
  • 容器暴露80端口,并指定宿主机80端口与其通信(宿主机端:容器需暴露的端口),
docker run -d --name= centos_server -p 80:80 centos:latest
  • 指定容器内目录与宿主机目录共享(宿主机文件夹:容器需共享的文件夹),
docker run -d --name= centos_server -v /etc/www:/var/www centos:latest

相关文章

  • docker基本操作

    # docker基本操作 ## 镜像操作 ### 获取镜像 从Docker Hub搜索镜像: docker s...

  • Docker命令及实战

    常用Docker命令 docker容器信息 镜像操作 镜像搜索 镜像下载 删除镜像 容器操作 提示:对于容器的操作...

  • 大觅网

    Docker镜像操作查看镜像:docker images搜索镜像:docker search 镜像关键字拉取镜像:...

  • Docker基本操作

    1. 镜像操作 搜索镜像:docker search 镜像名 拉取镜像docker pull 镜像名docker ...

  • Docker常用命令

    镜像操作docker images 查看所有镜像docker pull <镜像名:tag> 拉取镜像 如:...

  • Docker

    [TOC] 使用 Docker 镜像 下载镜像 列出镜像 构建镜像 删除本地镜像 操作 Docker 容器 容器是...

  • docker命令

    镜像、容器基本操作 1、获取镜像docker pull 2、运行容器docker run docker run -...

  • Docker常用命令学习

    启动docker引擎 重启docker引擎 查看docker版本 docker镜像常用操作查看本地所有镜像 其中R...

  • Docker入门-常用命令

    Docker镜像操作 Docker运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker会从镜像仓库...

  • Docker常用操作命令

    镜像操作 安装镜像 镜像仓库 Docker仓库[https://hub.docker.com/]版本号在tags中...

网友评论

    本文标题:docker 镜像操作

    本文链接:https://www.haomeiwen.com/subject/lqqncctx.html