文档章节

docker命令

爱宝贝丶
 爱宝贝丶
发布于 07/11 19:39
字数 1652
阅读 9
收藏 0

1. 获取镜像

  • 从docker镜像仓库获取镜像的命令是docker pull。其命令格式为:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
  • 具体的选项可以通过docker pull --help命令看到,这里我们说一下镜像名称的格式。

    • docker镜像仓库地址:地址的格式一般是<域名/IP>[:端口号]。默认地址是docker hub。

    • 仓库名:如之前所说,这里的仓库名是两段式名称,即<用户名>/<软件名>。对于docker hub,如果不给出用户名,则默认为library,也就是官方镜像。

      docker pull ubuntu:16.04
      
  • 上面的命令中没有给出docker镜像仓库地址,因此将会从docker hub获取镜像。而镜像名称是ubuntu:16.04,因此将会获取官方镜像library/ubuntu仓库中标签为16.04的镜像。

2. 运行镜像

  • 有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器,以上面的ubuntu:16:04为例,如果我们打算启动里面的bash并且进行交互式操作的话,可以执行下面的命令:

    docker run -it --rm ubuntu:16.04 bash
    
  • -it:这是两个参数,一个是-i,表示交互式操作,一个是-t,表示终端;

  • --rm:这个参数是说容器退出后随之将其删除;

  • ubuntu:16.04:这是指用ubuntu:16.04镜像为基础来启动容器;

  • bash:放在镜像名后的是命令,这里我们希望有个交互式shell,因此用的是bash;

  • 最后我们可以通过exit退出容器。

3. 列出镜像

  • 要想列出已经下载下来的镜像,可以使用docker image ls命令,命令包含了仓库名、标签、镜像ID、创建时间以及所占用的空间;

    docker image ls
    
  • 查看镜像、容器、数据卷所占用的空间;

    docker system df
    
  • 仓库名、标签均为<none>的镜像称为虚悬镜像(dangling image),显示这类镜像:

    docker image ls -f dangling=true
    
  • 一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除:

    docker image prune
    

4. 删除本地镜像

  • 如果要删除本地的镜像,可以使用docker image rm命令,其格式为:

    docker image rm [选项] <镜像1>[<镜像2>...]
    

    其中,<镜像>可以是镜像短ID、镜像长ID、镜像名或者镜像摘要;

  • 使用docker image ls -q来配合docker image rm,这样可以批量删除希望删除的镜像:

    docker image rm $(docker image ls -q ubuntu) // 删除所有仓库名为ubuntu的镜像
    
  • 或者删除所有在ubuntu:16.04之前的镜像:

    docker image rm $(docker image ls -q -f before=ubuntu:16.04)
    

5. docker容器操作

  • docker是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。

  • 启动容器

    • 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态的容器重新启动。因为docker的容器是轻量级的,用户可以随时删除和创建新容器;

      // 新建并启动
      docker run
      
      // 示例
      docker run ubuntu:16.04 /bin/echo 'hello world'
      
  • 启动已终止容器

    • 命令

      docker container start <容器名>
      或
      docker start <容器名>
      
    • 启动一个bash终端,允许用户进行交互:

      docker run -i -t ubuntu:16.04 /bin/bash
      
      • -t让docker分配一个伪终端并绑定到容器的标准输入上,
      • -i则让容器的标准输入保持打开;
    • 当利用docker run来创建容器时,docker在后台运行的标准操作包括:

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

    • 可以使用docker container stop来终止一个运行中的容器;
    • 终止状态的容器可以用docker container ls -a命令看到;
    • 处于终止状态的容器,可以通过docker container start命令来重新启动;
    • 此外,docker container restart命令会将一个运行态的容器终止,然后再重新启动它。
  • 进入容器

    • 在使用-d参数时,容器启动后会进入后台,某些时候需要进入容器进行操作,使用docker exec命令可以进入到运行中的容器中;

    • exec命令-i -t参数

      • docker exec后边可以跟多个参数,这里主要说明-i -t参数。只用-i参数时,由于没有分配伪终端,界面没有我们熟悉的Linux命令提示符,但是命令执行结果仍然可以返回。当-i -t参数一起使用时,则可以看到我们熟悉的Linux命令提示符;

        docker exec -it <容器id> /bin/bash
        
  • 导入和导出容器

    • 导出容器

      • 如果要导出本地某个容器,可以使用docker export命令

        docker export <容器id> > <导出文件名.tar>
        
    • 导入容器

      • 可以使用docker import从容器快照文件中再导入为镜像

        cat <导出文件名.tar>| docker import - 镜像用户/镜像名:镜像版本
        
      • 此外,也可以通过制定URL或者某个目录来导入

        docker import http://study.163.com/image.tgz example/imagerepo
        
  • 删除容器

    • 删除容器

      • 可以使用docker container rm来删除一个处于终止状态的容器

        docker container rm ubuntu:16.04
        

        如果要删除一个运行中的容器,可以添加-f参数,docker会发送SIGKILL信号给容器;

    • 清理所有处于终止状态的容器

      • docker container ls -a命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器

        docker container prune
        

© 著作权归作者所有

爱宝贝丶

爱宝贝丶

粉丝 325
博文 130
码字总数 430897
作品 0
武汉
程序员
私信 提问
Docker 三剑客之 Docker Swarm

上一篇:Docker 三剑客之 Docker Compose 阅读目录: Docker Machine 创建 Docker 主机 Docker Swarm 配置集群节点 Docker Service 部署单个集群服务 Docker Stack 部署多个集群服务,以及 ...

那谁爸爸
2018/01/08
0
0
Docker 17.03系列教程(二)CentOS 7安装Docker

本章我们来讨论如何在CentOS 7上安装Docker。Docker必须安装在CentOS7 64位机器上。如果您的系统是CentOS 6.x,请升级;如果您的机器是32位系统,请更换。 卸载老版本Docker Docker老版本(例...

eacdy0000
2017/10/17
0
0
10 条让你离不开的 Docker 常用 CLI 命令

出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一、三、五晚6点10分 与您不见不散! Docker 是构建微服务的绝佳工具,它可以让您创建基于云端的应用程序和系统。为了最大限度地利用您的...

docker公司
2018/09/12
0
0
容器Docker学习系列五~命令学习history,save, import

随着我们几篇文章Docker的命令学习,关于Docker本地镜像管理的命令学习已经接近尾声。今天我们就学习下本地镜像管理的最后三个命令history,save, import。当然前面命令没有掌握熟练的同学可以...

LuckQI
2018/08/19
0
0
Docker理论与实践(二)

文章作者:Tyan 博客:noahsnail.com 1. Docker命令 1.1 docker run hello-world解析 这个命令总共有三部分: docker:告诉操作系统你使用的是docker程序 run:创建和运行docker容器的子命令...

Quincuntial
2016/09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
126
7
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
18
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
10
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部